0

で可能です

$('#iframe_id').contents().find('.stuff_to_modify).addClass('whatever');

しかし、window.postMessageイベントを使用して、iframe から do_something メッセージをスクリプトに送信することも可能です。これにより、メッセージが受信されたときに変更が行われます (そのクラスが追加されます)。

私はどちらの道を行くべきか、そしてこれら2つの方法の違い(欠点、利点)は何だろうと思っていました。

iframe にスクリプトを含める必要がなくなったため、jQuery メソッドの方が優れているようです。

4

1 に答える 1

3

あなたが与えたwindow.postMessageとjQueryサンプルの主な違いは、postMessageがクロスオリジン通信を可能にすることです。

つまり、iframe をホストする親ページがドメイン A からのもので、iframe のコンテンツがドメイン B からのものである場合、postMessage を使用すると通信できますが、jQuery アプローチではセキュリティ エラーが発生します。

あなたが提供したリンクは、ブラウザのwindow.postMessage実装へのJavaスクリプトラッパーであり、それをサポートしていないブラウザのウィンドウロケーションハッシュポーリングにフォールバックします。その他の利点は、リンク自体に記載されています。

したがって、2 つのページが同じオリジンからのものである場合、つまり同じドメインから提供されている場合は、jQuery アプローチ自体を使用できます。2 つの異なるオリジンからのものである場合は、JS ラッパーを使用する必要がある場合があります。

于 2012-06-11T11:14:11.537 に答える