2010-12-12 15 views
5

現在、サブドメイン内、メインドメイン上、iframeを使用してページをロードしようとしています。サブドメインはjavascript関数を呼び出すようにしていますメインドメインはコンテンツの高さに応じてiframeのサイズを変更できます。document.domain IE8の「許可が拒否されました」問題

<script type="text/javascript"> 
document.domain = "mysite.com"; 
function doSomething() { 
    //do something 
} 
</script> 
<iframe id="mytestid" src="test.mysite.com" height="0" width="900"></iframe> 

そして、私の他のサイトのため、test.mysite.com、ここでのコードはページ内です:

<script> 
document.domain = "mysite.com"; 

$(document).ready(function() { 
    window.parent.doSomething(); 
}); 
</script> 
はここ(ページ内のコードが)

www.mysite.com例です

これはFirefox、Safari、Chromeの場合はうまくいくようですが、IE8の場合はうまくいきません。 IE8はいつも、私は問題が解決しないかどうかを確認するためにIE7やIE6でテストすることができていないコールwindow.parent.doSomething()

を行う際にエラーを「許可が拒否された」私与えるが、誰もが、この問題が発生しましたか?私はコードをレイアウトしている方法で何かを逃したことがありますか?

助けを借りてくれてありがとう。

+0

[Permission Denied IE iFrame](http://stackoverflow.com/questions/2953158/permission-denied-ie-iframe)の複製が可能です。 – alex

答えて

1

は、ここではいくつかの可能性のある問題に関するコメントの多いスレッドだ:私はIEを持っていないとして、私は、これをテストしていない

注意。残念ながら、でもも私の見解からは納得できないようです。

したがって、上記のポストから、2つの原因があるようです。

  • ポストは、IEが同じドメインを持っているすべての文書を必要と主張しています。さらに多くのドキュメント(iframesなど)がある場合は、それらを削除して、これらの2つ(メインとiframe)だけでテストしてください。
  • 投稿の最後のコメントを参照してください。
2

document.domainを「許可が拒否された」の両方のページが同じ値にdocument.domainを設定している後に待っているのは数秒でsetTimeoutに入れるIE8が解決の問題を試してみてください!

他のユーザーのように、iframeがページ上にあるset document.domainの後に数秒でタイムアウトを設定し、iframe内の2番目のページを呼び出します。

あなたは、私は同じ問題に走ったし、タイムアウトを使用することはしませんでした

1

..あなたがIE8にdocument.domainを設定し、それが動作する後、あなたのiframeのSRC値、秒のカップルを設定する必要があります問題を解決してください。

他のサイトはすべて正常に動作していましたが、両方のウィンドウを横に並べて表示し、下部のステータスバーに「ローカルイントラネット」が表示され、「信頼できるサイト」 "

これは別のポイントにチェックしました。両方のサブドメインがIEのInternet Security Propertiesの同じセキュリティゾーンに表示されていることを確認してください。そうしないと、「Permission denied」というエラーが表示されます。

関連する問題