如何使用Javascript在FireFox中将html从内存动态加载到iframe中

How do I dynamically load html from memory into an iframe in FireFox with Javascript?

本文关键字:动态 内存 加载 iframe html Javascript 何使用 FireFox 中将      更新时间:2023-09-26

在chrome中,如果我将HTML作为一个名为HTML的var中的字符串,我可以很容易地将其加载到iframe中,并让iframe执行该HTML页面(使用它可能包含的任何css/jss/etc),方法是:

window.sHTML = html;
iframe.src = javascript:parent.sHTML

在Firefox中,这根本不起作用。有没有一种方法可以在firefox中做到这一点?请注意,我需要JS在iframe中正确执行。例如这把小提琴http://jsfiddle.net/9k9Pe/2/有点像我想做的,但如果html中有一个脚本标记,那就破坏了一切。

更新:这在firefox中确实有效,只是它与window.location的交互方式不同,这破坏了我的代码。

回答我自己的问题:

window.sHTML = html;
iframe.src = javascript:parent.sHTML

这在firefox中确实有效,它只是与window.location进行了不同的交互,这破坏了我的代码。

更详细地说,如果你做,在铬

iframe.src = www.foo.com/bar.html
window.sHTML = html;
iframe.src = javascript:parent.sHTML

然后iframe将执行html字符串中的html,但其window.location将保留为www.foo.com/bar.html,并且相关链接将被视为iframe来自www.foo.com/bar.html

然而,在FF中,window.location变成了javascript:pparent.sHTML,相关链接将不再像人们期望的那样工作。