-1

我正在使用以下 javascript 事件处理程序来处理数据库中动态填充的不可用图像。

<head>
<script type="text/javascript">
  function blank_image_handler() {
    document.getElementById("imageplaceholder").style.display = "none";
  }
</script>

<body>
<div id="imageplaceholder"> <img src="image/thumbnail/<?php echo $row_images['image_link']; ?>" alt="<?php echo $row_images['image_caption']; ?>" onerror='blank_image_handler();' /> </div>
</body>

此事件处理程序正确地服务于目的,但在 w3c html 验证期间未对其进行验证。

我在验证期间收到的错误是there is no attribute "onerror"

顺便说一句,我的文档类型是 xhtml 过渡

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml">

4

3 回答 3

1

您的 DTD 是http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd “如果您查看 DTD 中支持的事件列表:http: //www.w3.org/TR/ xhtml1/dtds.html#dtdentry_xhtml1-transitional.dtd_events 没有“onerror”事件,这就是 w3c 验证器报告错误的原因。

于 2012-09-22T12:30:49.783 回答
1

规范中没有onerror属性,即使浏览器可能实现它。

更好的版本是做这样的事情:

<script type="text/javascript">
   function blank_image_handler() 
   {
      document.getElementById("imageplaceholder").style.display = "none";
   }

   var image = document.getElementById("myImage");
   image.addEventListener('error', blank_image_handler, true);
</script>

当然,您必须为图像提供 id myImage。你应该将他的脚本移动到 html 的末尾(无论如何推荐)。

于 2012-09-22T12:30:54.587 回答
0

使用 'onerror' 您可以在脚本标签中执行以下操作:

  document.getElementById("imageplaceholder").addEventListener("error",blank_image_handler,false);
于 2012-09-22T12:32:27.693 回答