2017-02-02 9 views
1

私は数日間これを探していて、誰かがこれに対する答えを私に助けてくれるのだろうかと思っていました。iframe設定の内容

私は、現在、ユーザーがcssとjsのリンクとインラインスクリプト/スタイルを含むことができるhtmlページを作成できるようにするシステムを構築中です。

私は元々出力タグを使用していましたが、元々divタグを使用してHTML出力を追加していましたが、余分なスタイルやスクリプトも親ページに影響していました。

親要素へのブートストラップリンクとJQueryの競合を止めるには、私が知っているところからiframeをsandbox環境で実行する必要がありますが、そのコンテンツの設定方法はわかりません。 iframeがサンドボックスモードのとき

あなたがしようとした場合: - IFRAMEをサンドボックス化して、原点を許可しないさ

$("example iframe element").contents().find("body").html("example html inline styles etc");

これがうまくいかないと、ブロックがアクセス起因します。

jQueryの複数のインスタンスを "親と1つのiframe"で競合するのを止める唯一の方法は、動作するように思われるnoConflictを試みたが、複数のブートストラップの競合を修正しない親エレメントとiframeエレメントにロードされます。

アクセスをブロックすることなくサンドボックス化されているiframeに実行時にコンテンツを追加する方法や、独自の異なるコンテナアプローチを使用する方法を知っている人はいますか?

私は本当にそれについて多くの情報を見つけることができないので誰でもこれに与えることができる助けや指導を感謝します。

答えて

1

私は最終的に、この状況で問題が何であるかを知りました。なぜなら、JqueryとBootstrapがiframeをサンドボックスに入れずに矛盾している理由がわかっているので、サンドボックスのiframeは必要ありません。 iframeにコンテンツを入れるために、以下のようなコードを使用するように指示する記事がたくさんあります。

$("example iframe element").contents().find("body").html("example html inline styles etc"); 

上記の方法の問題点は、コンテンツを挿入するためのiframeを開くことですが、iframeの終了を指定していないことです。

これは、通常のサンドボックス化されていないiframeのJqueryとBootstrapが競合しても、クローズされずに親ページにリークするためです。 iframeに直接コンテンツを配置する実際の方法は、接続が適切に閉じられるように、以下のコードにする必要があります。

上記のコードを実行することで、iframe内のコンテンツを変更するだけでなく、コンテンツの書き込みが完了した時点でコンテンツを閉じることもできます。これは、Iframeが完全に分離されたページ要素であるという目的に固執し、親ページへのjsとcssの漏洩を阻止する上で非常に重要です。

私はこの答えが、iframeでこの特定の問題に遭遇し、間違った方法で実行時にコンテンツを追加する他の誰かの時間を節約するのに役立ちます。

関連する問題