2010-12-17 7 views
2

フレーム内にWebアプリケーションがあるフレームがあります。特定のJavaScript関数が呼び出せるページに存在することが予想されます。これらのJavaScript関数を親アプリケーションのiframeに挿入するにはどうすればよいですか?ポータルアプリケーションのiFrameにjavascriptを挿入

+2

これは同じ起源ポリシーに違反していませんか? – Robert

+0

@Robertしかし、両方のアプリケーションが同じドメインで動作する場合はどうなりますか?それは同じ原産地政策に違反していません - http://en.wikipedia.org/wiki/Same_origin_policy#Origin_determination_rules –

答えて

2

iframe内のコンテンツを制御するかどうかなど、詳細については少し曖昧です。しかし、フレーム間でJavascriptにアクセス/適用するにはいくつかの方法があります。 iFrameの中に含まれるページで

parent.FunctionName(); 

これはインラインフレームを含んでいるあなたのメインページ内に存在する関数を呼び出します。同様に

YourIFrameName.FunctionName(); 

は親から自分のiframe内の関数を呼び出します。

必要なJavascript関数を.jsファイルにパッケージ化することもできます。そしてそれらを必要とするページのヘッダー(iframeやメインページ)に挿入します。

はあなたの<head>でこれを含める:

<script type="text/javascript" src="YourJavascriptFile.js"></script> 

あなたが内容を制御し、同一生成元ポリシーに実行しない場合は、次の2つのオプションがあります。

1)あなたを再考応用。

2)実行可能な混乱:あなたが コール が含まれたWebアプリの ページの内容を引くためにいくつかのcURLタイプの魔法を行うのiframeからスクリプトに必要となる、 は、 出力を必要とJavascriptを注入し、意味のある方法で変更された内容を に置き換えます。

あなたは#2のルートを移動する必要があることを決めた場合、私はより具体的に編集することができます。

+4

私は最近、その#2の混乱についてブログに書いています。http://benjaminlanders.com/solving同じ原点政策/ –

0

ロバートが言及したように、私は(ほとんどの場合、すべてではないが)ほとんどのブラウザで同じ発信元ポリシーに違反すると考えています。

また、関数をiframeに挿入するのではなく、iframeのコンテンツをiframeの親から直接参照するようにしてください。

関連する問題