Справочная информация: мне нужно загрузить рекламные сценарии после загрузки DOM.Поскольку многие из сценариев используют document.write () и другие потенциально плохие функции для запуска после загрузки DOM, я хочу загрузить сценарии внутри iframe.
Поэтому, когда нужно показать объявление,запускается событие, которое выполняет следующие действия:
var iframe = document.createElement('iframe');
iframe.setAttribute('id', 'iframeId');
iframe.setAttribute('src', 'about:blank');
var adContainer = document.getElementById('AdContainer');
adContainer.appendChild(iframe);
var val = '<html><head></head><body>';
val += '<scr' + 'ipt type="text/javascript" src="' + url + '"></scr' + 'ipt>';
val += '</body></html>';
Если я не назначаю теги html и body для val, скрипт автоматически добавляется в заголовок iframe и не выполняется в FF.В IE скрипт не выполняется с или без тегов head / body / html.
var doc = iframe.contentWindow || iframe.contentDocument;
if (doc.document){
doc = doc.document
}
doc.open();
doc.write(val);
doc.close();
Я нашел этот последний бит кода здесь: Почему добавляется кдинамически создаваемый .Я НЕ хочу загружать jquery в iframe, я просто хочу добавить скрипт и выполнить его.
Мое текущее решение отлично работает в FF и Webkit.Однако IE не выполняет скрипт.Сценарий записывается на страницу, но не запускается.Есть ли лучший способ добавить скрипт в iframe, чтобы он работал через браузер?Или можно сказать IE запустить скрипт?
Я знаю, что могу загрузить внешний документ с помощью рекламного сценария через iframe, но я не хочу делать дополнительный вызов на мой сервер, если я могу сделать это динамически.Кроме того, я попытался использовать appendChild () в теле iframe для вставки сценария, но поскольку элемент script создается вне DOM iframe, похоже, это не работает.