首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >在火狐中动态呈现iFrame

在火狐中动态呈现iFrame
EN

Stack Overflow用户
提问于 2012-07-04 23:22:11
回答 2查看 1.9K关注 0票数 0

我动态生成一个iFrame,如下所示

代码语言:javascript
复制
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。

知道为什么吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-07-04 23:25:51

这是可行的:

代码语言:javascript
复制
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对象)。

票数 2
EN

Stack Overflow用户

发布于 2018-12-12 05:27:27

这样的事情是没有必要的。你不需要使用超时或任何东西来让firefox像chrome一样工作。在你的代码中,只需将源代码设置为'javascript:‘就可以了。示例如下:

代码语言:javascript
复制
iframe.src = 'javascript:';

或者直接使用:

代码语言:javascript
复制
iframe.src = 'about:';

不要设置为空。在firefox、chrome、opera等浏览器中都能正常工作。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11331863

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档