1. ホーム
  2. html

[解決済み] HtmlコードをURLではなくIFRAMEソースとして表示する

2022-05-05 05:27:12

質問

このIFRAMEの標準的なコードは、ちょうどhtmlコードでsrcのURLを置き換える方法はありますか? だから私の問題は簡単です、私はそれがMYSQLからHTMLボディをロードするページを持っている私はそれがページの残りの部分から独立して、その特定の境界の境界内に自己レンダリングするようにフレーム内のコードを提示したいと思います。

<iframe src="http://example.com" name="test" height="120" width="600">You need a Frames Capable browser to view this content.</iframe>   

解決方法は?

データURLを使えば可能です。 これは、ドキュメント全体を1つのHTMLの文字列で含みます。 たとえば、次のようなHTMLです。

<html><body>foo</body></html>

はこのようにエンコードすることができます。

data:text/html;charset=utf-8,%3Chtml%3E%3Cbody%3Efoo%3C/body%3E%3C/html%3E

として設定し src 属性を指定します。 .


編集部:もう一つの選択肢は、Javascriptでこれを行うことです。 私が選ぶのは、ほぼ間違いなくこの方法です。 ブラウザが受け入れるデータURLの長さを保証することはできません。 Javascriptのテクニックは次のようなものでしょう。

var iframe = document.getElementById('foo'),
    iframedoc = iframe.contentDocument || iframe.contentWindow.document;

iframedoc.body.innerHTML = 'Hello world';


編集2(2017年12月) : Html5 の srcdoc 属性と同じように Saurabh Chandra Patel(サウラブ・チャンドラ・パテル の答えが、今、受け入れられる答えになるはずです! もし、あなたが IE/Edgeを効率的に検出する を使うのがコツです。 srcdoc-polyfill ライブラリと、IE/Edge 以外のブラウザの srcdoc 属性にのみ適用されます。 カニースドットコム をご覧ください。)

<iframe srcdoc="<html><body>Hello, <b>world</b>.</body></html>"></iframe>