1

希望有人可以提供帮助。

我有一个 java 脚本,可以在我的 html 页面中创建许多图像。但如果图像丢失(未找到),我想显示默认图像(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(我认为是单引号 ' )预期为“;”

请你帮忙

谢谢

小号

4

3 回答 3

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 回答
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... 部分不被视为string - 我认为当您查看 Stackoverflow 如何为您的代码着色时,您可以很容易地看到它)。

在此示例中,您不能轻易将 onerror=".." 更改为 onerror='..' 因为在 onerror 语句中,您还必须在 src 属性中使用单引号。解决此问题的一种方法是使用反斜杠转义一些引号。

于 2013-01-06T22:25:44.810 回答