设置document.domain时访问被拒绝错误

时间:2013-10-02 12:34:52

标签: javascript internet-explorer kendo-ui

来自:http://www.kendoui.com/forums/kendo-ui-web/editor/access-denied-error-when-document-domain-is-set-.aspx

的交叉帖子

我正在一个需要设置document.domain的应用程序中工作。这是不容谈判的。当设置document.domain并且我使用localhost或FQDM时,我从Kendo收到“拒绝访问”错误。它与创建或访问编辑器的iframe有关。该错误发生在kendo.editor.js的第301行,即:

295     iframe = $("<iframe />", { src: 'javascript:""', frameBorder: "0" })
296                        .css("display", "")
297                        .addClass("k-content")
298                        .insertBefore(textarea)[0];
299     
300     wnd = iframe.contentWindow || iframe;
301     doc = wnd.document || iframe.contentDocument;

您可以通过编辑器演示(在此处找到kendo下载:examples \ web \ editor \ index.html)并在头部末尾添加以下脚本标记来重现此问题:

<script>document.domain=document.domain;</script>

在编辑器初始化之后设置document.domain显然有效,但可能不会总是一个选项。 如何在设置document.domain后让编辑器工作?有没有办法“取消设置”document.domain?显然我宁愿不编辑kendo,但如果有一个修复程序可以添加,那么我会为它打开一个bug。

我尝试将iframe的document.domain通过其source属性中的js设置为其父级的document.domain,但这没有帮助。

这发生在IE 8&amp; 9.我使用的剑道版本是2013.2.716。如果您需要任何其他信息,请与我们联系。

1 个答案:

答案 0 :(得分:3)

唯一直接的解决方案是从 contentEditable 元素初始化编辑器,如下所示:http://demos.kendoui.com/web/editor/inline-editing.html。然后编辑器不会创建iframe。