IE9:设置 document.domain 时访问被拒绝
Posted
技术标签:
【中文标题】IE9:设置 document.domain 时访问被拒绝【英文标题】:IE9: Access is denied when set up document.domain 【发布时间】:2012-05-12 01:16:26 【问题描述】:在 IE9 上使用带有 CLEditor 的 document.domain 时遇到问题。当我添加 document.domain 时,我收到错误消息“SCRIPT5:访问被拒绝。”。它适用于 Firefox 以及当我删除 document.domain 时。我还是没有使用跨子域iframe,所有iframe都在同一个域中。
如何在不删除 document.domain 的情况下修复它?
这是我设置 document.domain 的方法:
<script type="text/javascript" src="jquery-1.7.1.min.js"></script>
<script type="text/javascript">
document.domain = 'mydomain.com';
</script>
<script type="text/javascript" src="jquery.cleditor.js"></script>
这是出现错误的部分 CLEditor 代码:
// Create a new iframe
var $frame = editor.$frame = $('<iframe frameborder="0" src="javascript:true;" id="iframe">')
.hide()
.appendTo($main);
// Load the iframe document content
var contentWindow = $frame[0].contentWindow,
doc = editor.doc = contentWindow.document, // here is the error message
$doc = $(doc);
这是 CLEditor 的完整源代码: http://premiumsoftware.net/cleditor/jquery.cleditor.js
【问题讨论】:
【参考方案1】:要使用document.domain
,需要在通信双方设置相同的字符串——这里,在iFrame和parent中都设置。
【讨论】:
我仍然没有开始在不同的子域上使用 iframe。 iFrame 和父级在同一个子域上。他们都在同一个域和同一个页面。如果 iFrame 是这样由 JavaScript 创建的,我认为 IE9 不允许通信: var $frame = editor.$frame = $('以上是关于IE9:设置 document.domain 时访问被拒绝的主要内容,如果未能解决你的问题,请参考以下文章
从 Rails 设置 document.domain 的 DRY 方式
jQuery - 如果存在,获取 document.domain 的值
是否可以使用数据 src 内部 document.domain 设置 iframe?
Facebook SDK + Google SDK:被访问的框架将“document.domain”设置为“facebook.com”