Я хочу добавить и удалить iframe в документе с помощью javascript/jquery (на самом деле iframe следует добавить и удалить, если пользователь решил закрыть его).
В этом iframe я должен включить внешний скрипт, используя элемент, скрипт, который содержит в основном сгенерированный контент, отображаемый с помощью document.write (ротатор объявления).
Проблема заключается в том, что при загрузке iframe элемент включается, но его содержимое не интерпретируется, поэтому содержимое не записывается с помощью document.write.
Я не знаю, чего здесь не хватает.
Вот что я пробовал (вдохновленный другими ответами на SO):
HTML:
<!DOCTYPE html>
<html>
<head>
<title></title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<script src="/jquery-10.2.js"></script>
<script src="/frame.js"></script>
</head>
<body>
<div>Some content</div>
<div id=myFrameContainer></div>
</body>
</html>
/frame.js:
$(document).ready(function(){
$('<iframe></iframe>', {name:"myFrame",id:"myFrame"})
.css("height", 300)
.css("width", 500)
.load(function() {
$(this).contents().find("body")
.append('<scr' + 'ipt type="text/javascript" src="http://example.com/rotator.php?affid=12345"></scr' + 'ipt>');
}).appendTo("#myFrameContainer");
});
Я также попытался добавить элемент в голову, а также без каких-либо успехов.
Кроме того, я могу видеть контент, созданный внешним скриптом Firebug (но, возможно, это абсолютно нормально и не имеет никакого отношения к моему вопросу).
document.write
доступен только во время загрузки страницы или после вызова document.open
. Он не может использоваться из сценария, добавленного позже, как вы делаете в /frame.js
.
document.write
, я использовал эту технику: stackoverflow.com/a/13775353/2101267