JQuery обнаруживает сломанные изображения пожары слишком поздно - PullRequest
2 голосов
/ 05 июля 2011

Я пытаюсь обнаружить поврежденные изображения в jQuery, и в этом случае я хочу удалить их и заменить их альтернативным текстом.Я использую следующий код, который я нашел здесь на 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 голосов
/ 05 июля 2011

Я определил проблему путем устранения.Это не то, где вы думаете.Под моими тегами сценария у меня был код Google Ads:

<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();
});

Любой, кто имеет разумное объяснение, заслужит мое вечное уважение и благодарность.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...