クロスドメインサイトのiframeがあります。インスペクターを使用して、iframeのDOMを変更することもできるため、iframeのDOMを読みたいと思っています。しかし、すべての方法でそれを読み込もうとすると、同じOriginポリシーに遭遇します。必要なのは、iframeからローカルDOMにロードされたコンテンツだけです。 $(document.body).find('iframe').html()
と同じくらい簡単だと思いましたが、それは空の文字列を返しています。
ここ数日間行ってきた作業は、これが実行可能であることを前提としているため、これを行う方法があることを本当に望みます。
ありがとう
できません。 XSS保護 。クロスサイトのコンテンツはjavascriptで読み取ることができません。主要なブラウザはあなたにそれを許しません。申し訳ありませんが、これは設計上の欠陥です。アイデアを捨てるべきです。
編集
Iframeに読み込まれたWebサイトへの編集アクセス権がある場合は、 postMessage を使用できます( ブラウザの互換性 も参照してください)
簡単な方法があります。
次に、$ _ GETでこのURLを取得し、file_get_contents($ _ GET ['url']);でコンテンツを表示します。
自分と同じドメインを持つiframeを取得すると、$( "iframe")。contents()。find( "body")を使用してコンテンツを操作できるようになります。
Iframedページにアクセスできる場合は、 easyXDM のようなものを使用してiframeで関数呼び出しを行い、データを返すことができます。
Iframedページにアクセスできない場合は、サーバー側のソリューションを使用する必要があります。 PHPを使用すると、次のような迅速で汚いことができます。
<?php echo file_get_contents('http://url_of_the_iframe/content.php'); ?>
ロードされたドメイン/ iframeへのアクセス権がある場合、window.postMessageを使用してiframeとメインウィンドウ間で通信できます。
IframeでJavaScriptを使用してDOMを読み取り、postMessageを介してトップウィンドウに送信します。
詳細はこちら: https://developer.mozilla.org/en-US/docs/Web/API/Window/postMessage