如果/当加载页面时图片有问题时,我尝试更改某些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函数放在文档开头的脚本标签中。

10-08 15:49