jQuery检测到破碎的图像太迟了

时间:2011-07-05 08:47:12

标签: jquery html http-status-code-404

我正在尝试在jQuery中检测损坏的图像,在这种情况下,我想删除它们并替换为它的alt文本。 我正在使用我在SO上找到的以下代码;

$(document).ready(function(){
    $('img.logoimg').error(function() {
        $(this).unbind("error");
        $(this).parent().prepend("<strong>"+$(this).attr("alt")+"</strong>");
        $(this).remove();
    });
    //...
}

这在FF中运行良好。

但是,在Chrome中,浏览器仍会显示一个正方形,表示图像已损坏。 似乎error事件发生的时间太晚,无法检测到损坏的图像。

我能早点点火吗?代码还有其他问题吗?

[编辑] 在下面添加了解决方案。任何能够解释这一点的人都能获得这个问题的解决方案。

1 个答案:

答案 0 :(得分:0)

我通过消除确定了问题。这不是你想的地方。 在我的脚本标记下,我有一个Google广告代码:

<script type="text/javascript" src="my_javascript.js"></script>
<script type='text/javascript' src='http://partner.googleadservices.com/gampad/google_service.js'></script>
<script type='text/javascript'>GS_googleAddAdSenseService("ca-pub-XXXXXXXXXXXXXX");GS_googleEnableAllServices();</script>
<script type="text/javascript">
    GA_googleAddSlot("ca-pub-XXXXXXXXXXXXXX","banner_1");
    GA_googleAddSlot("ca-pub-XXXXXXXXXXXXXX","banner_2");
    GA_googleAddSlot("ca-pub-XXXXXXXXXXXXXX","banner_3");

    GA_googleFetchAds();
</script>

这是最后一次召唤:GA_googleFetchAds()杀死了它。删除该呼叫似乎解决了我的问题。奇怪的。

我现在已经解决了这个问题:

$(document).ready(function(){
    GA_googleFetchAds();
});

任何有合理解释的人都会赢得我永恒的尊重和感激。