Фрагмент JavaScript отключает Firefox3.6 - PullRequest
4 голосов
/ 08 декабря 2011

Этот код блокирует Firefox 3.6.

 // Google Code for Converted Users Remarketing List
    function converted_remarketing() {
        window.google_conversion_id = 1018522404;
        window.google_conversion_language = 'en';
        window.google_conversion_format = '3';
        window.google_conversion_color = '666666';
        window.google_conversion_label = 'e9x2CKzhXXXXpNbV5QM';
        window.google_conversion_value = 0;
        var a = document.createElement('script');
        a.type = 'text/javascript';
        a.async = true;
        a.src = 'https://www.googleadservices.com/pagead/conversion.js';
        var b = document.getElementsByTagName('script')[0];
        b.parentNode.insertBefore(a, b);
    }

converted_remarketing();

Пример страницы: http://jsfiddle.net/LLSu4/11/show/

Похоже, это как-то связано со вставкой скрипта.Самое смешное, что я скопировал фрагмент вставки из кода Google Analytics, который работает безупречно.

Итак, вопрос в том, почему он замораживает Firefox 3.6 и почему он не замораживает Firefox3.6 при запуске очень похожего кода для загрузки скрипта Google Analytics ga.js?

1 Ответ

4 голосов
/ 10 декабря 2011

Это, по-видимому, связано с document.write() в преобразовании. Js.

См. http://jsfiddle.net/LLSu4/19/

ga.js не использует document.write, поэтому проблем нет.

Использование document.write во вставленном скрипте никогда не является хорошей идеей. Это запутает движок HTML. Вы обнаружите, что в bugzilla есть несколько ошибок, касающихся appendChild и document.write, например https://bugzilla.mozilla.org/show_bug.cgi?id=607222

...