如果/当加载页面时图片有问题时,我尝试更改某些src
标记的img
。我似乎从Internet Explorer 9中获得了一些随机行为,其中一些图像正确显示了替换的图像,有些图像上有一个红色的十字。如果我在浏览器中进行调试,则会被告知未定义ImgError()
。它在代码中明确定义,并且显然可以正常工作。为什么会这样呢?
<div class="PhotoBorder"><img alt="" onerror="imgError(this)"
src="./images/services/69_Staffmember.jpg" /></div>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js">
</script>
<script>
$(window).load( function() {
$('.RowWrapper').each(function() {
var TotalWidth = 0;
$(this).find('.StaffMember').each(function() {
TotalWidth = TotalWidth + $(this).outerWidth(true);
});
this.style.width = TotalWidth + "px";
});
});
function imgError(img)
{
img.setAttribute("src","./images/services/49_ImgMissing.jpg");
img.removeAttribute("onerror");
}
</script>
最佳答案
首先,如果出现错误ImgError() is not defined
,是因为函数名称是imgError
,而不是ImgError()
。
但是,如果这是您的问题中的错别字,则可能会在某些时候出现错误imgError() is not defined
,因为可能是从缓存中请求了图像,并且错误处理程序立即触发了(即,在其余时间之前)您的文档已被解析,这意味着您的imgError
函数尚不可用。要解决此问题,只需将imgError
函数放在文档开头的脚本标签中。