0

ほぼ同じ質問をするstackoverflowに関する他の投稿がかなりありますが、これまでに読んだすべての回答では、DOCTYPEおよびhtmlタグを含むiframeのドキュメント全体を本質的に置き換える方法に対処していません.

jQuery.ajax リクエストを介してページ全体の HTML を取得し、返された HTML を iframe の新しい HTML として使用しようとしています。ajax リクエストから返される HTML の例を次に示します。

<!DOCTYPE html>
<html lang="en-US">
    <head>
        <link rel="stylesheet" type="text/css" media="all" href="main.css">
        <title>Test Page</title>
    </head>
    <body>
        <h1>Heading</h1>
    </body>
</html>

次に、この HTML を次の方法で iframe に挿入します。

$('#my-iframe').contents().find('html').html(returnedHtml);

この件に関する他のほとんどの投稿で示唆されているように。ただし、iframe の内容を調べると、ドキュメントは次のように構成されています。

<html>
    <link rel="stylesheet" type="text/css" media="all" href="main.css">
    <title>Test Page</title>
    <h1>Heading</h1>
</html>

DOCTYPE の欠落、html タグの lang 属性の欠落、head タグと body タグの欠落に注意してください。

助言がありますか?(このアプリでは、さまざまな要因により、iframe の src 属性を必要な URL に変更するだけでは実行できないことに注意してください)

4

1 に答える 1

1

代わりにプレーンな JavaScript を試してください。

iframe = document.getElementById('my-iframe');
iframe.contentWindow.document.open()
iframe.contentWindow.document.write(returnedHtml);​

フィドル

于 2012-07-03T16:32:07.203 に答える