1

誰かが助けてくれることを願っています。

HTML ページ内に多数の画像を作成する Java スクリプトがあります。しかし、画像が見つからない(見つからない)場合は、デフォルトの画像(none.png)を表示したいと思います。上記の onerror メソッドを使用して、以下の作業行を変更しました

から

aelem.innerHTML += "<img src='/AjaxZfc/ViewClient.aspx?public=only&name=Extensions/row/" + itab + ".png' alt=" + TabNode.text + " />";

  aelem.innerHTML += "<img src='/AjaxZfc/ViewClient.aspx?public=only&name=Extensions/row/" + itab + ".png' alt=" + TabNode.text + " onerror="this.onerror=null;this.src='/AjaxZfc/ViewClient.aspx?public=only&name=Extensions/row/none.png';" />";

しかし、私のスクリプトは失敗し、

行 88.. (上記の行) char 180 (これは一重引用符 ' だと思います) 期待される ";"

助けてください

ありがとう

S

4

3 に答える 3

0

次のように使用する必要があります

aelem.innerHTML += "<img src='/AjaxZfc/ViewClient.aspx?public=only&name=Extensions/row/" + itab + ".png' alt=" + TabNode.text + " onerror='this.onerror=null;this.src=\'/AjaxZfc/ViewClient.aspx?public=only&name=Extensions/row/none.png\';' />";

あなたが書いている方法は良い選択肢ではありません。インライン関数を作成するのではなく、常に関数を使用することをお勧めします。

あなたは以下を使うことができます

aelem.innerHTML += "<img src='/AjaxZfc/ViewClient.aspx?public=only&name=Extensions/row/" + itab + ".png' alt=" + TabNode.text + " onerror='ChangeSource(this)' />";

次に、新しい関数を作成します

function ChangeSource(self) {
    self.onerror=null;
    self.src='/AjaxZfc/ViewClient.aspx?public=only&name=Extensions/row/none.png';
}
于 2013-01-06T22:25:12.173 に答える
0

引用符内で引用符を使用する場合は、さらに注意する必要があります。文字列の連結をプラス記号で分割しましょう:

aelem.innerHTML += "<img src='/AjaxZfc/ViewClient.aspx?public=only&name=Extensions/row/" +
 itab +
 ".png' alt=" +
 TabNode.text +
 " onerror="this.onerror=null;this.src='/AjaxZfc/ViewClient.aspx?public=only&name=Extensions/row/none.png';" />";

問題は最後の行にあります。onerror="something"を記述したいのですが、画像のhtmlコード全体がすでに二重引用符で囲まれているため、正しく解釈されません(this.onerror...の部分全体が文字列-Stackoverflowがコードをどのように色付けするかを見ると、簡単にわかると思います)。

この例では、onerror = ".."をonerror='..'に簡単に変更することはできません。これは、onerrrorステートメント内でsrc属性に一重引用符を使用する必要があるためです。この問題を解決する1つの方法は、バックスラッシュで引用符をエスケープすることです。

于 2013-01-06T22:25:44.810 に答える
0

バックスラッシュですべてのinner二重引用符をエスケープする必要があります。

aelem.innerHTML += "<img src=\"/AjaxZfc/ViewClient.aspx?public=only&name=Extensions/row/" + itab + ".png\" alt=\"" + TabNode.text + "\" onerror=\"this.onerror=null;this.src='/AjaxZfc/ViewClient.aspx?public=only&name=Extensions/row/none.png';\" />";
于 2013-01-06T22:21:53.427 に答える