1

ここには似たような質問がたくさんあることは承知しており、私自身もこれに何らかの形で触れていますが、私はこの特定のコードに苦労しており、JS初心者としてどこにいるのかわかりません.私はそれで間違っています。

私は基本的にTinyMCEを適応させてポップアップダイアログを取り除きます(きれいに保つために、それらを自分のものに置き換えます)。私が今取り組んでいるのは、画像の挿入です。これが私の機能です。

<script type="text/javascript">
function addImage(imgurl){
tinyMCE.execCommand('mceInsertContent',false,'<img src=" +imgurl+ " style="float:left; margin: 0    5px 5px 0;" />');
}
</script>

そして、リンク

<a href="javascript:;" onclick="addImage('/myimage.jpg');return false;">[Insert Image]</a>

関数はコードを挿入するという点で「機能」しますが、「imgurl」(この例では myimage.jpg) は渡されません。/myimage.jpg が挿入される代わりに、+imgurl+ が挿入されます。

この初心者からのポインターは大歓迎です!

4

3 に答える 3

3

連結が正しくありません... シングル クォーテーションで開く場合は、シングル クォーテーションで連結してください。二重引用符を使用する場合は、二重引用符を使用してください。

function addImage(imgurl){
     tinyMCE.execCommand('mceInsertContent',false,'<img src="'+imgurl+'" style="float:left; margin: 0 5px 5px 0;" />');
}

連結を詳細に説明する簡単なチュートリアルがたくさんあります。一般的なルールは、一貫性を保つことです。文字列を二重引用符で囲む場合、コンパイラはこれを行うために二重引用符を認識したため、単一引用符は文字列の解析を停止しません。同じことが単一引用符にも当てはまります。Hello'; // broken string以下のコードは、間違った引用符を使用して連結するのと同じように、文字列として解析します。

var string = "Hello'; // broken string

このような問題を回避する良い方法は (熟練したプログラマーでも時々構文エラーが発生するため)、構文が強調表示される優れたプログラミング エディター (notepad++、sublime 2、coda、textmate、phpad) を使用することです。stackoverflow.com にある単純な蛍光ペンでも十分です。上記のコードを見るだけで、二重引用符 ( ") の後のすべてが文字列と同じ色であるため、文字列として解析されますが、変数はシンタックス ハイライターを通すと色が変わることがわかります。

于 2012-08-25T13:53:09.153 に答える
1

変数をうまく渡しています。問題は、その値を連結しているのではなく、値を持つ文字列を連結していることです+imgurl+。代わりに以下を使用してください ( の'直前と直後の終了と開始に注意してください+ imgurl +:

tinyMCE.execCommand('mceInsertContent',false,'<img src="' +imgurl+ '" style="float:left; margin: 0    5px 5px 0;" />');
于 2012-08-25T13:52:22.550 に答える
0

文字列が正しくフォーマットされていません:

'<img src="' + imgurl + '" style="float:left margin: 0 5px 5px 0;" />';
于 2012-08-25T13:52:41.920 に答える