2

トップ ドキュメントのコンテンツ全体を iframe (同じオリジン) から置き換える必要があります。次の JavaScript が iframe によって実行され、ジョブが実行されます。

var doc = window.top.document.open("text/html", "replace");
doc.write('hello');
doc.close();

ただし、Firefox では、操作によって現在のドキュメントの URL が iframe の URL に変更されます。Chrome では URL は変更されません。ドキュメントを iframe から置き換えることは可能ですが、元の URL はすべての適切なブラウザーで機能するように維持できますか? (「置換」パラメータを削除しようとしましたが、役に立ちませんでした)。

4

1 に答える 1

2

完全なコンテンツ(ヘッドセクションなどを含む)を置き換える必要がある場合は、次を試すことができます:

var html = 'YOUR HTML' /* your html string*/,
    url = "javascript:(function(){var c = '" +html +
           "';document.open();document.write(c);document.close();})();";
// replacing the original location with the dynamically generated one 
window.top.location.replace(url);

この場合、URL は以前と同じになります。ファイル全体を変更する必要がなく、内容だけを変更する必要がある場合は、次を使用できます。

window.top.document.documentElement.innerHTML = 'YOUR HTML';

これにより、トップ ドキュメントの先頭は変更されませんが、URL を変更せずにすべてのコンテンツが置き換えられます。

于 2013-02-12T12:13:00.943 に答える