Javascript document.write в IE 8 - PullRequest
       19

Javascript document.write в IE 8

2 голосов
/ 29 июля 2010

Это делает мою голову, преследовал это весь день.У нас есть рекламный сервер, который вызывает скрипт на нашем сайте, который затем вставляет код.

Например, страница Adserver, вызываемая в iframe:

<html>
<head><title></title></head>
<body>
<script src="http://adserver/ad?s=728x90"></script>
</body>
</html>

JavaScript, возвращаемый вызовом скрипта выше:

document.write('<script type=\'text/javascript\' src=\'http://partner.googleadservices.com/gampad/google_service.js\'>\n');
document.write('</script>\n');
document.write('<script type=\'text/javascript\'>\n');
document.write('GS_googleAddAdSenseService("ca-pub-xxxxxxxxxxxxxxxxxxx");\n');
document.write('GS_googleEnableAllServices();\n');
document.write('</script>\n');
document.write('<script type=\'text/javascript\'>\n');
document.write('GA_googleUseIframeRendering();\n');
document.write('</script>\n');
document.write('\n');
document.write('<script type=\'text/javascript\'>\n');
document.write('GA_googleFillSlotWithSize("ca-pub-xxxxxxxxxxxxxxxxxx", "Global_728x90", 728, 90);\n');
document.write('</script>\n');

Вставляет рекламу Менеджера объявлений Google на нашу страницу.Проблема заключается в том, что код не работает в IE 7 и 8, но отлично работает в Chrome, Firefox, Safari и т. Д.

«Ошибка», возвращаемая IE, - «Ожидается объект» и выполняется через IE ».Инструменты разработчика "тоже не помогают.

Я пробовал множество вещей, чтобы заставить его работать, разделяя

Кажется, что ошибка происходит всякий раз, когда запускаются функции GS_ или GA_, поэтомуЯ подозреваю, что IE пытается остановить запись внешних скриптов на страницу?

Может кто-нибудь пролить свет на то, почему происходит ошибка или решение?

Спасибо

Ответы [ 2 ]

0 голосов
/ 03 января 2012

Я много раз видел это с момента публикации этого вопроса. Насколько я понимаю, это проблема состояния гонки, которая существует только в IE. К сожалению, пути назад нет.

0 голосов
/ 19 мая 2011

Я думаю, это просто потому, что Chrome, Firefox, Safari и т. Д. Более быстрые браузеры.Они загружают файл http://partner.googleadservices.com/gampad/google_service.js перед выполнением сценария, который зависит от него, в то время как IE все еще извлекает файл в этот момент.Возможно, вы можете включить содержимое этого js-файла в свой js-файл?

...