我正在一个需要设置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。如果您需要任何其他信息,请与我们联系。
答案 0 :(得分:3)
唯一直接的解决方案是从 contentEditable 元素初始化编辑器,如下所示:http://demos.kendoui.com/web/editor/inline-editing.html。然后编辑器不会创建iframe。