В отчаянной необходимости надежный способ определить, отключены ли изображения в ie9 с использованием JavaScript - PullRequest
1 голос
/ 31 августа 2011

Я понимаю, что делать то, что я пытаюсь, - это очень плохая форма программирования (полагаться на обнаружение javascript активных изображений для важных целей). Тем не менее, у меня есть код, который сильно зависит от этого обнаружения.

Вот пример того, что я пытаюсь сделать: http://jsfiddle.net/5BPJj/1/

Это хорошо работает во всех браузерах, кроме IE9. Насколько я понимаю, $ 9 (window) .load в IE9 уникален тем, что событие иногда вызывается до того, как все изображения заканчивают загрузку. Таким образом, я испытываю состояние гонки - иногда, когда изображения включены, они еще не загружены и поэтому рассматриваются как отключенные.

Я взял код обнаружения изображения отсюда: http://talideon.com/weblog/2005/02/detecting-broken-images-js.cfm

Если кто-нибудь может заставить это работать в IE9 (и IE7 + и др.) Или знает о более надежном методе обнаружения изображений, я был бы очень признателен.

Обратите внимание, что мне нужно знать не только когда изображения включены (простое событие загрузки), но особенно, когда они отключены.

Большое спасибо.

=======

РЕДАКТИРОВАТЬ: чтобы отключить изображения в IE, я использую Сервис> Свойства обозревателя> Дополнительно и снимите флажок «Показать картинки»

1 Ответ

0 голосов
/ 31 августа 2011

Если вы можете использовать jQuery, вы можете запустить функцию обнаружения неработающих изображений при загрузке DOM, метод ready () «не сработает, пока все ресурсы, такие как изображения, не будут получены полностью» (из документация стр.).

Нечто подобное могло бы сработать, я думаю:

jQuery(document).ready(function() {
  for (var i = 0; i < document.images.length; i++) {
    if (!IsImageOk(document.images[i])) {
      document.images[i].style.visibility = "hidden";
    }
  }
});

Надеюсь, что поможет

...