我正在一个需要设置 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。如果您需要任何其他信息,请告诉我。