7

iframe を (JavaScript を使用して) コンテンツに 100% 適合させる方法に関する質問は、既にフォーラムで回答されています...同じドメインのコンテンツを表示する iframe のみ.

私の質問: iframe の src 属性が、フレームを含むページのドメイン外のページ用である場合、コンテンツに合わせて iframe のサイズを変更することは可能ですか? クロスサイト スクリプティングに関するブラウザのセキュリティ機能により、iframe のドキュメント オブジェクトにアクセスできません。

私は創造的な解決策を探しています。私の考えの 1 つは、スクロールバーが iframe に表示されていることを何らかの方法で検出し、表示されなくなるまで高さを段階的に増やすことでした。残念ながら、表示されているスクロールバーを検出する方法も見つかりません。アイデア?

クライアント側のソリューションを探していることに注意してください。

反応:


デイブ

問題はまだ存在します。リモート ドキュメントの高さが事前にわからないため、データベースまたはクエリ文字列の値から設定することはできません。


ダソフト

CSS の iframe の 100% は、iframe内のコンテンツの 100% に設定するのではなく、ページまたはそれを含む要素 (つまり、div など) に対して相対的に設定します。

4

5 に答える 5

1

同様の質問に対する私の答え)

ブラウザのセキュリティ モデルにより、iframe 化されたページをある程度制御しないと、これを行うことはできません。可能であれば、それはセキュリティ上の問題であり、修正する必要があります。

ページに埋め込まれたときにサードパーティの Web ページの高さを埋め込みサイトに知らせることは無害に思えますが、これにより、ブラウザーのユーザーが非公開にしたい情報が埋め込みサイトに漏洩する可能性があります。たとえば、http: //www.facebook.com/ は、ログインしているかどうかによってレンダリングが異なるため、私のウェブサイトの高さを計算できれば、<iframe src="http://www.facebook.com/">Facebook ユーザーかどうかを計算できます。あなたはおそらく私に知られたくないでしょう。

情報漏えいは、悪名高いCSS History Leakに似ており、ブラウザー ベンダーはプラグを差し込む必要がありました。

于 2010-11-04T18:44:15.050 に答える
0

私はそれをテストしていないので、これは理論的です:

file_get_content()1)PHPは、 CURLを使用または使用してリモートページをローカルのhtmlファイルに保存します 。2)Javascriptがローカルファイルをiframeにロードします-これはローカルになり、セキュリティの問題は適用されません。

javascript変数またはSession変数(リモートコンテンツからプルできない)がある場合は、少なくともこの手法を使用してローカルファイルのドキュメントの高さを照会し、それに応じてiframeを設定してから、サイズ変更されたiframeにリモートURLをロードできます。

Cavat:リモートページ内のページ変更のURLを知る方法がないため、この手法は最初のページでのみ使用できます。リモートページがすべて同じ高さである場合、これは問題ありません。

于 2010-11-02T12:58:02.437 に答える
0

正当な理由で導入されたセキュリティ機能を回避しようとしているようです...

サイズ変更はスクリプトを介して行う必要がありますか?iframeのサイズがクエリ文字列、データベース、構成ファイルなどから取得されるページにリダイレクトできます。

于 2009-01-21T19:52:51.253 に答える
0

最善の解決策ではありませんが、試すことができます:

iframe アプリで iframe を書き込むための JavaScript は、700px などの URL #h700 で現在の高さを設定します。次に、ループを使用してホスト サイトの「javascript 内」でその変更をリッスンし、src="url#h700" を読み取り、それによって iframe の高さを設定します。

于 2011-10-04T01:04:23.573 に答える