Мой div не существует после загрузки моего пикселя - PullRequest
16 голосов
/ 29 сентября 2011

У меня есть пиксель, и когда я его загружаю, он говорит:

a call to document.write() from an asynchronously-loaded external script was ignored

и затем отображает:

document.getElementById('gospixel') is null

Вот мой пиксельный код:

<script name="gospix" src="http://www.example.com/p/gospixel.js">

и в этом файле:

gos_f=42;
gos_a1='a2';
gos_u=window.location.href;
gos_k='6gZYlfy7Y7Q';
gos_rt='3_s';
document.write(unescape("%3Cscript src='http://example.com/p/gosuna.js' type='text/javascript'%3E%3C/script%3E"));

Спасибо за вашу помощь!

Ответы [ 2 ]

22 голосов
/ 04 октября 2011

Не используйте document.write. просмотреть эту ветку: Почему document.write считается "плохой практикой"?

Вместо этого используйте динамический объект, такой как document.createElement и appendChild.

http://www.dustindiaz.com/add-and-remove-html-elements-dynamically-with-javascript/

Это исправит вашу ошибку.

0 голосов
/ 29 сентября 2011

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

в госпикселе заменить последнюю строку на

function insertScript(){
    document.write(unescape("%3Cscript src='http://example.com/p/gosuna.js' type='text/javascript'%3E%3C/script%3E"));
}

, а затем в какой-то другой части HTML

<script type="text/javascript">
    insertScript();
</script>
...