0

在 chrome 中,如果我在名为 html 的 var 中将 HTML 作为字符串,我可以轻松地将其加载到 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 的交互方式不同。

4

1 回答 1

0

回答我自己的问题:

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

这实际上在 Firefox 中有效,它只是与破坏我的代码的 window.location 的交互方式不同。

要更详细地了解,如果您这样做,请使用 chrome

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:parent.sHTML 并且相对链接将不再按预期方式工作。

于 2012-09-05T01:12:39.950 回答