1

Same Origin Policy により、親ウィンドウから iframe 要素にアクセスすることには制限があります。背景色を非表示にするか、少なくとも透明に見えるようにする CSS ハックまたは回避策はありますか?

編集 :

iframe には id があり、idulBlockを持つ div が含まれていますlistgroup

#listgroup {
background: none repeat scroll 0 0 #F4F4F4;
border-color: #FDF6E5;
border-left: 1px solid #FDF6E5;
border-right: 1px solid #FDF6E5;
border-style: solid;
border-width: 1px;
margin: 0;
padding: 0;
}

#ulBlock {
height: 321px;
visibility: visible;
}
4

1 に答える 1

3

.contents()同一オリジン ポリシーにより、iframe がホストとは異なるドメインにある場合、明らかに、iframe で JavaScript を実行することはできません。$("#ulBlock").contents()だから私はそれがアクセスできない、nullまたはアクセスできないと仮定することから始めます。それ以外の場合はfind()、目的の div だけを作成し、その css を jQuery で変更できます。

CSS トリックがあるかどうかという質問に対する簡単な答えは、いいえです。CSS のトリックはありませんが、目的を達成する方法はいくつかあります。

  • iframe を更新し、クエリ文字列に情報を渡して、iframe にリロードされるページが、参照している div を非表示または透明にすることを認識できるようにします。

  • CORSを活用します。一部の古いブラウザーはまだサポートしていませんが、CORS は軽度のセキュリティ上の脆弱性と見なされていることを読みましたが、iframe のコンテンツにアクセスし、スクリプトを実行して iframe のコンテンツを変更できます。つまり、 というヘッダーを含める必要がありAccess-Control-Allowます。それを調べる価値があるかもしれません。

  • ブラウザー メッセージを前後に渡します。Daniel Park は、ブラウザー メッセージを iframe との間で送受信できるプラグインを作成して、すばらしい仕事をしたと思います。最新のブラウザーのほとんどは、この機能をサポートしています。彼のサイトにアクセスしてください: http://postmessage.freebaseapps.com/ . 例が表示されている場所までロールダウンします。彼は特に iframe で動作するプラグインを作成しました。私は商用アプリケーションの 1 つで彼のコードを使用しました。

上記のすべてのケースで、iframe のホストと埋め込まれているページの両方のソースにアクセスできる必要があることに注意してください。

于 2012-08-11T07:19:40.670 に答える