2012-01-12 13 views
0

私はこのような多くの質問を見たことがありますが、私の特定の状況に役立つようなものは見つけられていないので、この質問が繰り返されるようであれば謝ります。iframeとページ間の通信ie8の

私はサイトwww.foo.comを持っており、その中にiframeがあります。情報をfoo.comのaタグでクリックすると、iframeに新しいイメージを渡してユーザーを表示するjavascript関数が呼び出されます。 iframeとその "親"間の通信は、無作為IE8ページを除くすべてのブラウザで問題なく動作しているようです。 「アクセスが拒否されました」というエラーメッセージが表示され、ブラウザが有効になっている機能を指しています。以下は、サイトのコードがどのように動作するかを見るためのコードです。

IFRAME:

<iframe scrolling="no" src="foo.com/bar" id="ifram" name="ifram"></iframe> 

タグ:

のjavascript:

if($(this).val() == '242'){ 
    document.getElementById('ifram').style.border='0px'; 
    document.getElementById('ifram').style.background = "url('../product_images/uploaded_images/Flag.jpg')"; 
    document.frames.ifram.document.body.style.backgroundColor="transparent"; 

これはコードのスニペットだけであり、全体のプロセスが含まれていませんイメージを取得するためのajaxコールが、問題の一部であるかどうかはわかりませんでした。私はFirefoxで未定義のエラーが発生しますが、機能はまだ起動します。私はfirefoxのためにwindow.framesを使う必要があると仮定しています。

全体として、この問題を解決する方法についてのお手伝いをいただければ幸いです。私は、ブラウザの設定と関係しているセキュリティ上の問題があるのか​​、それともコード化されているのかどうか分かっているのだろうかと思います。それはあなたのiframe タグhttp://www.foo.comに位置ページ上にあるが、場合http://foo.comへのiframeポイントは、それがサンドボックス違反と考えられていますし、あなたはアクセスが拒否買ってあげることに注意することが重要です事前

答えて

0

感謝。あなたのページがオンになっているのと同じドメインを指していることを確認してください。 iFrameのsrcタグで相対URLを使用することもできますので、ドメイン情報なしでsrc="bar.php"に変更することができます。

+0

Webページエラーの詳細が表示され続ける ユーザーエージェント:Mozilla/4.0(互換性あり、MSIE 8.0、Windows NT 5.1、Trident/4.0、GTB7.2、InfoPath.2、.NET CLR 2.0.50727、InfoPath.1、 .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729) タイムスタンプ:2012年1月12日20:05:20 UTC メッセージ:アクセスが拒否されました。 行:103 文字:5 コード:0 URI:.... –

+0

クール。私の答えが言ったように 'src ='とウェブページのURLが両方とも同じドメイン名になっていることを確認しましたか? – Tim

0

document.framesの前にdocument.frames.ifram.document.body.style.backgroundColor = "#ccc";を使用する必要はありません。ちょうどifram.document.body.style.backgroundColor = "#ccc";が行います。