首先看看这篇文章的正确答案。在我看来,这可能是你的问题。
如果不是这样,那么我从另一篇文章中看到的这个快速破解可能会有所帮助。
var frame = $('<iframe>')
.attr('id', 'myIframe')
.addClass('someClass')
.attr('src', 'javascript:(function () {' +'document.open();document.domain=\'myDomain.net\';document.close();' + '})();');
.appendTo($('#someDiv'));
不确定这是否相关,但我也在网络链接上找到了这个。
好的,所以回复您的评论。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 进行一些解释。这在过去对我很有帮助。特别是这句话...
显式设置该值表示意图与另一个子域(在同一父域下)上的脚本“合作”。
Dor,您可能遇到了时间问题。我发现了一些我刚刚测试过的代码(这里)对我有用。它确保在您尝试访问 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;