如果我有一个包含iframe的页面:
<iframe src="blank.html" id="frame"></iframe>
我运行以下javascript:
var iframe = document.getElementById("frame");
var content = iframe.contentDocument || iframe.contentWindow;
content = content.documentElement || content.document;
content.innerHTML = "Test";
我的iframe结束了内容“测试”。但是,如果我在脚本中创建iframe(例如)
var iframe = document.createElement("iframe");
iframe.id = "frame";
iframe.src = "blank.html";
document.body.appendChild(iframe);
然后运行第一个代码段,最后得到一个空白的iframe。我注意到我确实得到了我试图设置的内容的闪光 - 是否有我可以在iframe上订阅的事件让我知道它可以操作(例如它的DOM就绪事件?)
答案 0 :(得分:2)
它闪烁,因为您在将DOM设置为blank.html之前更新了DOM;
var iframe = document.createElement("iframe");
iframe.id = "frame";
iframe.src="about:blank"; //or blank.html
iframe.onload = function() {
var domdoc = iframe.contentDocument || iframe.contentWindow.document;
domdoc.write("Test");
alert("..or..")
domdoc.body.innerHTML = "<em>Cake</em>";
}
document.body.appendChild(iframe);