我正在使用以下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"
顺便说一句,我的doc类型是xhtml transitional
<!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">
答案 0 :(得分: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验证器报告错误的原因。
答案 1 :(得分: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>
当然,您必须为图片提供标识myImage
。你应该将脚本移动到html的末尾(无论如何都是推荐的)。
答案 2 :(得分:0)
而不是使用'onerror',您可以在脚本标记中执行以下操作:
document.getElementById("imageplaceholder").addEventListener("error",blank_image_handler,false);