2009-06-18 8 views
1

iFrameを持つhtmlページがあります。そこからいくつかの変数を読み込みます。 基本的には、緯度と経度の値を取得するマップです。iFrame、またはその逆の変数へのアクセス

私はAdobe AIRで作業していましたが、innerHTML、contentWindowから値を取得しようとしましたが、まだ動作していません。

これを行うには良い方法がありますか?

+0

は、同じドメイン内のiframeとメイン内部のページはありますか? –

答えて

0

jQueryを使用してiframe内のコンテンツにアクセスできます。

<iframe id="iframeId" ...> .... <div id='someData'>data</div> ....</iframe> 
$('#iframeId').contents().find('#somedata').html(); // returns data 
+2

クロスドメインの場合は機能しません。 –

1

ブラウザセキュリティモデルは、ドメイン間のトラフィック/通信を禁止します。異なるサブドメインを扱っている場合は、トップドメインにルールを緩和することができます。しかし、最終的に、あなたは頼りになりません。

ドメイン境界を越えて話す必要のあるアプリケーションがある場合は、通常はバックエンド経由で接続するのが最善の方法です。 iframeのコンテンツを管理していない場合は、通常運が悪いです。参考までに、Googleマップはアプリケーションを使用するためのAPIを提供しています。 http://code.google.com/apis/maps/index.html

0

アプリケーションを使用していないサンドボックスブリッジにアプリケーションを使用する必要があります。これにより、2つの領域(iframeとgeneral)間の通信が可能になります。 「バックエンドを経由」され、正確に何を:

@svend、返信みんなのためにここにhttp://www.adobe.com/devnet/air/ajax/quickstart/sandbox_bridge.html

0

感謝を見てください?私はそれを得る...私は他のドメインにあるiFrameのコンテンツを制御します。

@Webber:そのつもりは私のために働くようにそのリンクウェバーのためのおかげで...見える..私はそれを試してみるよ...

+0

私はsvendは、コンテナページが提供されているドメインを介してiframeコンテンツをプロキシする必要があることを意味します。 – anddoutoi

0

非アプリケーションサンドボックスブリッジへの適用がある場合で働いていました私はそれをこのようにしなければならなかったクロスドメイン通信..回答の男性のための

おかげ..

0

1-彼らはLNGを保存IFRAMEを含むファイル内の隠し入力を追加し、ユーザが変更するたびに変更することができます。

2- jsファイルにこの関数を作成します。

function getFrameWindow(frameId) { 

    var frame = document.getElementById(frameId); 
    var result = null; 
    if (frame.contentDocument) { 
    // For NS6 
    result = frame.contentDocument.window || frame.contentDocument.defaultView; 
    } else if (frame.contentWindow) { 
    // For IE5.5 and IE6 
    result = frame.contentWindow; 
    } else if (frame.document) { 
    // For IE5 
    result = frame.document.window; 
    } 
    return result; 
} 

3- IFRAMEを含むJavaScriptからこのコードを使用:

getFrameWindow("iframe").document.getElementById("lat").value 
+0

隠し入力の代わりに変数を追加して、次のようにアクセスすることもできます: getFrameWindow( "iframe")。document.variable_name – Luci

関連する問題