0

次の目標を達成したい.ボタンをクリックして、1回の入力で入力されたドメイン名を取得し、iframeにロードしたい. 私が問題を抱えているのは、特定のサイトを iframe にロードした後、ロードされたサイトの DOM を iframe に取得するにはどうすればよいですか? 新しく読み込まれたサイトから選択した要素の正確なパスをクリックして、iframe に保存する必要があります。どんな助けでも大歓迎です。ありがとうございました。

4

2 に答える 2

1

<iframe>プロパティを介して のコンテンツにアクセスできますcontentDocument

var iFrameContent = $('myIFrame')[0].contentDocument;
$(iFrameContent).find('.mySelector').text();

また、 のコンテンツへのアクセスは、 のがスクリプトと同じドメインにある<iframe>場合にのみ実行できることも指摘しておく必要があります。のが他のドメインからのものである場合、ブラウザはコンテンツへのアクセスを拒否します。src<iframe>src<iframe><iframe>

これはCORSに関する考慮事項です。

アップデート:

CORS の制限を回避するには、URL のサーバー側プロキシを作成する必要がありますsrc(<iframe>これは非常に簡単です)。

(例として) ASP.Net でこのようなことを行う場合、次のような Web サービスを記述します。

  1. 実際の URL をStringパラメーターとして受け取ります。
  2. オブジェクト (または類似のもの) を使用しHTTPWebRequestて URL コンテンツを取得します。
  3. ブラウザに戻します。

<iframe> srcコンテンツは "http://mysite.com" から配信されるようになったため、を " " に設定http://mysite.com/getURLService?url=www.lalala.comしてコンテンツを取得できます。

于 2013-01-16T17:50:19.510 に答える
0

あなたが使う.contents()

like $("iframe").contents().find();

于 2013-01-16T17:40:51.227 に答える