javascript - 在 Firefox 中动态渲染 iFrame

标签 javascript iframe

我像这样动态生成 iFrame

var iframe=document.createElement('iframe');
document.body.appendChild(iframe);
var iframedoc=iframe.contentDocument||iframe.contentWindow.document;
iframedoc.body.innerHTML="HI";

fiddle :http://jsfiddle.net/Pbj7S/

它适用于 Google Chrome、Opera、Safari,但不适用于 Firefox。

知道为什么吗?

最佳答案

这有效:

var iframe=document.createElement('iframe');
document.body.appendChild(iframe);
setTimeout(function(){
    var iframedoc=iframe.contentDocument||iframe.contentWindow.document;
    iframedoc.body.innerHTML="HI";
}, 10);

问题在于您试图在 DOM 中可用之前访问 iframe 文档。

延迟并不重要,重要的是浏览器仅在 js 线程完成工作后才更新显示(以及 Firefox 中的一些 js 可访问对象)。

关于javascript - 在 Firefox 中动态渲染 iFrame,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11331863/

相关文章:

javascript - Js 在父级的 iframe 中从外部域打开链接

html - 在 chrome 中将 pdf 呈现为 iframe

javascript - 如果从服务器接收到值,在哪里更新 Hook 的值更好?

javascript - 在数组中查找具有相同日期和总和值的元素

javascript - 带空点的 Jquery Sortable 样式函数

javascript - 使用 jquery 切换按钮

javascript - 无法打印 iframe 中加载的 pdf

javascript - 用 iframe 替换超链接

html - table 周围的神秘边框

javascript - 如何创建公共(public)和私有(private)成员?