1

交叉帖子来自:http ://www.kendoui.c​​om/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?显然我宁愿不编辑剑道,但如果他们可以添加修复程序,那么我会为它打开一个错误。

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

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

4

1 回答 1

3

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

于 2013-10-02T13:30:19.020 回答