设置文档域时出现“访问被拒绝”错误

Access Denied error when document.domain is set

本文关键字:拒绝 访问被拒绝 错误 访问 文档 设置      更新时间:2023-09-26

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

我正在一个需要设置文档域的应用程序工作。这是没有商量余地的。当设置了document.domain并且我正在使用localhost或FQDM时,我从Kendo收到"拒绝访问"错误。它与为编辑器创建或访问 iframe 有关。该错误发生在 kendo.editor 的第 301 行.js即:

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;

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

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

在编辑器初始化后设置 document.domain 显然有效,但可能并不总是一个选项。如何让编辑器在设置文档域后工作?有没有办法"取消设置"文档域?显然,我宁愿不编辑剑道,但如果他们可以添加修复程序,那么我会为此打开一个错误。

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

这发生在IE 8和9中。我使用的剑道版本是 2013.2.716。如果您需要任何其他信息,请告诉我。

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