2011-08-04 11 views
0

UIWebViewの内部DOM情報を取得するためのJavaScriptコードを注入しています。現在、すべてのコードはうんざりしていますが、私は大きな問題に直面しました。他ドメインのIFRAMEの文書です。ドメイン間のセキュリティポリシーによって、フレームに現在のページと異なるアドレスのドキュメントが含まれている場合、IFRAMEのDOMにアクセスできません。私のUIWebViewは、インターネット上の任意のサイトを処理できる必要があります。このセキュリティポリシーを回避する方法はありますか?UIWebView javascript injectionで他のドメインの他のフレームでHTML DOMにアクセスできますか?

答えて

1

UIWebView?いいえ

これを回避する唯一の方法は、自分でHTMLを解析することです(ライブラリをお勧めします - Element Parserはかなり良いです)。あなたは明らかにIFRAMEタグを探し、その内容を再帰的にロードする必要があります。

+0

実行時にクライアント側からJavaScriptで動的に作成されたHTML要素まで扱わなければなりません。仕事はウェブブラウザそのものを再実装することができます... – Eonil

+0

とにかくお返事ありがとうございます。私はJavaScriptの注入を掘り下げることを止めることができます。 :) – Eonil

0

ドキュメント内のIFrameは、javascript変数document.framesにあります。これはすべてのiframeを含む配列です。これにより、javascriptを使用してiframeのDOMにアクセスできます。

JavaScriptを使用すると、特別なリクエストを行い、iframeコンテンツを処理することで、UIWebViewDelegateにコールアウトすることができます。

+0

IFRAMEのDOMでこの作業が異なるドメインの文書を含んでいますか? – Eonil

+1

いいえ、これはセキュリティ上の理由から不可能です。申し訳ありませんが、私はクロスドメイン部分を読みました。これがあなたのアプリを通して可能ならば、人々はあなたのアプリを使って自分のウェブサイトを見つけて訪問し、これをクロスドメインスクリプティングに使うでしょう。 – Thys

+0

セキュリティの理由を明確にしてくれてありがとう:) – Eonil

関連する問題