2010-01-12 2 views
4

Мой JavaScript (скажем, файл 1) должен получить с моего сервера другой файл JS (скажем, файл 2) и завершить его до того, как DOM будет выполнен. Файл 2 фактически представляет собой рекламный скрипт (например, AdSense), который использует document.write. Я заметил, что если я извлечу файл 2, создав новый тег сценария из файла 1 и добавив его в головной узел DOM (используя методы манипуляции DOM), объявление будет корректно отображаться в firefox, но не в IEНаписание сценария для DOM и его запуск до выполнения DOM

Исследования показывают, что сценарии, добавленные к DOM динамически таким образом, могут запускаться ПОСЛЕ DOM, которые уже были обработаны, и в этом случае document.write перезаписывает всю страницу. Какие у меня варианты? Я могу думать об этом .... Какая из них гарантированно позволит File 2 манипулировать DOM, прежде чем сделать рендеринг?

1) document.write тега сценария для файла 2 внутри файла 1 2) XmlHttp синхронного вызова (не уверен, если это блокирует DOM от рендеринга)

Помощи :)

+0

Вы собираетесь принять ответ или есть что-то, чего я не вижу? –

ответ

2

синхронных вызовов делают блокировать DOM из рендеринга.

Если вы хотите не блокировать, вы можете выполнить асинхронный вызов.

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

Смежные вопросы