まず、この投稿の正解を見てください。それがあなたの問題かもしれないように私には見えます。
そうでない場合は、別の投稿から見たこの簡単なハックが役立つかもしれません。
var frame = $('<iframe>')
.attr('id', 'myIframe')
.addClass('someClass')
.attr('src', 'javascript:(function () {' +'document.open();document.domain=\'myDomain.net\';document.close();' + '})();');
.appendTo($('#someDiv'));
これが適切かどうかはわかりませんが、Webリンクでも見つかりました。
OK、コメントに返信します。javascript関数はソースを割り当てていません、それは明らかにIEで正しく行われないドキュメントドメインを設定しています
別の例と説明については、このリンクを確認してください。
だから私がしようとするのはこのようなものかもしれません...
var wrapUpIframe = document.createElement("iframe");
wrapUpIframe.id = 'WrapUpDialog3';
wrapUpIframe.src = setSrc();
document.body.appendChild(wrapUpIframe);
function setSrc(){document.open();document.domain=\'dc.com\';document.close();return 'WrapUpDialog.html';}
ドキュメントドメインを設定する関数を実行した後、iframeの実際のURLを返す方法を試してみる必要があるかもしれません。しかし、私が見ていることから、これはあなたのために働くかもしれません。
私は同様の問題を抱えていましたが、まったく同じ問題ではありませんでした。そのため、正確な修正を行うことはできません。ドキュメントドメインを設定する機能は、アクセス拒否エラーを乗り越えたものでした。
これをメインドキュメントに追加して、ドメインが一致していることを確認することもできます。
<script type="text/javascript">
document.domain = 'dc.com';
</script>
また、以前に使用したdocument.domainを明示的に設定する方法についての説明へのリンクを追加したいと思いました。これは過去に私に役立ちました。特にこの引用...
値を明示的に設定することは、別のサブドメイン(同じ親ドメインの下)のスクリプトと「協力」する意図を示します。
ドー、タイミングの問題があるかもしれません。テストしたばかりのコード(ここ)を見つけました。contentWindowにアクセスする前に、iframeが読み込まれていることを確認してください。
var iframe = document.createElement("iframe");
iframe.src = "WrapUpDialog.html";
if (iframe.attachEvent){
iframe.attachEvent("onload", function(){
alert("Local iframe is now loaded.");
});
} else {
iframe.onload = function(){
alert("Local iframe is now loaded.");
};
}
document.body.appendChild(iframe);
var iframeWindow = iframe.contentWindow || iframe.contentDocument.parentWindow;