2009-04-24 8 views
2

Airのiframe内のコンテンツにどのようにアクセスできるかを調べるのに多くの問題がありました。ここで私がテストしているjqueryコードの例をいくつか示します。Adob​​e Airでiframeのコンテンツにアクセスする

 

$(document).ready(function(){ 
    $("#frame").ready(function(){ 
     air.trace($("#frame").contents().find("body").html()); 
     air.trace(window.frames["frame"].innerHTML); 
     air.trace(document.getElementById("frame").innerHTML); 
    }); 
}); 
 

私が使用しているiframeはです。あなたは内容が常にどちらかヌル、未定義または空の文字列です見ることができるように

<iframe src="http://google.com" id="frame" width="100%" sandboxRoot="http://google.com/" documentRoot="/" name="frame" height="600"></iframe> 

上記のコードの出力は

 

null 
undefined 

 

です。 iframeのコンテンツにアクセスできないようなものがないのですか?どんな提案も大歓迎です。

+0

投稿したときにiframeが削除されたようです。これは私の最初の投稿ですので、私はそれをどのように投稿することができないのかよく分かりません。 – tomfmason

答えて

3

ソリューションは、ここでは、ここでhttp://help.adobe.com/en_US/AIR/1.1/devappshtml/WS5b3ccc516d4fbf351e63e3d118666ade46-7f08.html

だった私はそれが働いて得た方法の一例です。

<iframe src="http://google.com/local/iframe.html" id="frame" width="100%" sandboxRoot="http://google.com/local/" documentRoot="app:/" name="frame" height="600"></iframe> 

のsandboxRoot(例えばhttp://google.com/local)から要求されたものは、ドキュメントルートから使用され、それは同じドメイン(google.com)からのものであるかのように扱われます。

iframe.html iframeは同じドメインのものと同じようにGoogleにアクセスできます。私が知っていた

はこの:)

+0

私は同じ問題を抱えており、あなたの解決策を理解する上で問題があります。あなたはもう少し説明できますか?特にsrc = "http://google.com/local/iframe.html"が最初はhttp://google.comだったのはなぜですか? –

+0

それを傷つける。私はこの問題を解決しました。あなたは生きものです。 –

1

Adob​​e AIRはブラウザ(WebKit actually)なので、ブラウザのルールに従います。ここであなたの問題を支配するルールは、「同じ起源 - ポリシー」と呼ばれます。

同じドメインにない場合、ブラウザはそのサイトのデータまたはコンテンツにアクセスすることを許可しないため、この結果が得られます。別のドメインからデータを取得する場合は、JsonベースのAJAX APIを使用します。

この問題を持つ誰か他の人の例:

+0

つまり、元のポリシーは – Rob

+0

です。それはちょっとしたものです。 – cgp

+0

私は同じ起源政策に精通していますが、私はそれが大気中に適用されるとは考えていませんでした。私は地元のiframeのための多くの実用的な使用を表示しません。 これはiframeのdomにアクセスできることに依存する機能を私が追加することを妨げるので、実際には心配です。 – tomfmason

2

として、他の多くを行う方法でなければなりませんでした、私はまた、これを理解するために苦労しました。

溶液は tomfmason で上に与えられたが、それでも、それは実際には何が起こっていたかを理解することが私の年齢を取っています。

まだAIR html + jsを使用してWebブラウザを作成したり、リモートWebページからデータを取得しようとしている人を助けるため、非常に基本的なAIR 3.2プロジェクト(1.7 MBの.zipファイル) 1は、初期の複雑過ぎて取得後AIRは、実際には実際にはかなり滑りやすいです

http://adobe-air-js.blogspot.com/2011/12/air-reading-dom-of-remote-web-page.html

:それはで見つけることができます。私はそれがチタンよりも信頼性の高い/利用可能なマグナトゥードの秩序であることがわかります。

幸運を祈る! 〜Chris

関連する問題