Работа над большим, загруженным проектом У меня возникла проблема, которая уже описана в миллиардах тем на форумах и блоге, но нет решения, которое поможет в моем случае. Вот история.javascript document.write in external js file
У меня есть HTML-код баннера, я не знаю, что такое код. Иногда это обычный HTML, но иногда это тег <script>
с документом.write внутри него с тегом <script>
, который имеет src, чтобы в нем дважды щелкнуть сеть.
У нас есть: script> document.write> script (doubleclick).
Сеть с двойным щелчком, как вы, возможно, знаете, использует document.write тоже, и большую часть времени они дают флеш-баннеры, которым необходимо загрузить еще один файл js.
Так ведь у нас есть: сценарий> document.write> скрипт (DoubleClick)> document.write> сценарий> ...
Это хорошо работает, когда вы поместите его в HTML непосредственно. Страница рендеринга 1 часть, загрузка banner1, сохранение страницы рендеринга, загрузка banner2, завершение рендеринга страницы.
Но сейчас мне нужно сделать страницу первой и только после этого загрузить баннеры. Как использование баннера document.write нужно загрузить его перед window.onload событий (примечание: после того, как window.onload document.write перепишет весь документ.)
Что я сделал:
В голове раздел Я имею объект баннеров (реальное пространство имен огромного :)), с областью свойств.
Когда страница рендеринг и коды баннера Достойно ли я разместить код баннера в сферу и поставить <div id="bannerPlaceHolder"+id></div>
- так вот мне нужно будет поместить содержимое баннера позже
Страницы оказанной и перед </body>
тегом я поставил <script>banners.load()</script>
метод banners.load сделать это для каждого элемента в массиве области видимости:
document.write('<div id="codeHolder'+id+'">');
document.write(bannerCode);
document.write('</div>');
И только после этого у меня есть window.onload()
событие, сделать это:
принять все баннеры гр odeHolders и node-by-node присоединяют его узлы от codeHolder к placeHolder, поэтому в результате я загрузил баннеры после рендеринга страницы, а баннеры находятся в нужных местах.
Все отлично, за исключением IE, загружает любой js-скрипт, который динамически помещается в DOM в асинхронном режиме, поэтому document.write внутри сценариев doubleclick добавляет узлы в конец документа, а не в мои узлы codeHolder. Как обычно, это только в IE.
Буду очень благодарен всем, кто может знать решение.
innerHTML не выполняет код в <'script> теги динамически Я не могу создать сценарий, поскольку код html, который поставляется, не может управляться – 2008-11-24 21:41:28