我动态生成一个iFrame,如下所示
var iframe=document.createElement('iframe');
document.body.appendChild(iframe);
var iframedoc=iframe.contentDocument||iframe.contentWindow.document;
iframedoc.body.innerHTML="HI";
小提琴:http://jsfiddle.net/Pbj7S/
它适用于谷歌Chrome、Opera、Safari,但不适用于Firefox。
知道为什么吗?
发布于 2012-07-04 23:25:51
这是可行的:
var iframe=document.createElement('iframe');
document.body.appendChild(iframe);
setTimeout(function(){
var iframedoc=iframe.contentDocument||iframe.contentWindow.document;
iframedoc.body.innerHTML="HI";
}, 10);
问题在于,您试图在iframe文档在DOM中可用之前访问它。
延迟并不重要,重要的是浏览器只有在js线程完成工作后才会更新显示(对于Firefox,还有一些js accessible对象)。
发布于 2018-12-12 05:27:27
这样的事情是没有必要的。你不需要使用超时或任何东西来让firefox像chrome一样工作。在你的代码中,只需将源代码设置为'javascript:‘就可以了。示例如下:
iframe.src = 'javascript:';
或者直接使用:
iframe.src = 'about:';
不要设置为空。在firefox、chrome、opera等浏览器中都能正常工作。
https://stackoverflow.com/questions/11331863
复制相似问题