0

クロムでは、html という名前の変数に文字列として HTML がある場合、簡単にそれを iframe にロードし、iframe にその html ページを実行させることができます (含まれる css/jss/etc を使用して)。

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

Firefox では、これはまったく機能しません。Firefoxで動作するこれを行う方法はありますか? iframe で適切に実行するには JS が必要であることに注意してください。たとえば、このフィドルhttp://jsfiddle.net/9k9Pe/2/は私が望むことを行いますが、html 内にスクリプトタグがあると、問題が発生します。

更新:これは実際にはFirefoxで機能します.window.locationとの相互作用が異なり、コードが壊れていました.

4

1 に答える 1

0

私自身の質問に答える:

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:parent.sHTML になり、相対リンクが期待どおりに機能しなくなります。

于 2012-09-05T01:12:39.950 に答える