Firefox: window.open предотвращает загрузку img.src - PullRequest
0 голосов
/ 04 июня 2010

Я слышал некоторые слухи Я не могу их воспроизвести. И теперь мне любопытно, есть ли у кого-нибудь из вас опыт решения этой проблемы.

Наша аналитическая система использует JavaScript для создания изображения размером 1x1 пикселей. Это «изображение» регистрирует все поведение наших посетителей.

Теперь рассмотрим следующий (упрощенный) код JavaScript:

function visitLink (url)
{
  var randomNumber = Math.random();

  var img = new Image();
  img.src = 'http://www.example.com/log?url=' + escape(url) + '&' + randomNumber;

  window.open(link.href);

  return false;
}

Слух говорит; window.open может блокировать фоновую загрузку img.src в некоторых версиях FireFox.

Это работает в моей версии Firefox, хотя. Я вижу здесь призраков? Если не; Есть идеи, как повторить проблему?

Эрик

1 Ответ

0 голосов
/ 04 июня 2010

В моем понимании JavaScript - это однопоточный язык, который интерпретирует всю вашу функцию сверху вниз.

Поэтому, если что-то должно быть заблокировано, это открытие окна, а не загрузка изображения. Мое быстрое повторение действительно показывает это поведение.

function visitLink (url)
    {
      var img = new Image();
      img.src = 'http://www.meshfields.com/' + url;

      document.getElementById("myImgId").src = img.src;      
      window.open("http://www.meshfields.com/index.html");
    }

Markup:

 <a href="javascript:visitLink('myBigPicture.jpg');">Link</a>

 <img id="myId" src="" />

Все браузеры не показывают проблем с загрузкой картинки. Протестировано на Safari, Chrome, Firefox, Opera на MacOSX. Однако, по-видимому, я не использовал вашу собственную аналитическую систему для генерации моей картинки.

...