下午好,
我试图让 kendoEditor 从 knockout-kendo 项目 ( https://github.com/kendo-labs/knockout-kendo/ ) 工作,但它一直抛出错误 'Uncaught TypeError: Cannot read property 'body '为空'。
经过大量调试后,我得到了以下代码行(此代码直接取自 kendo.web.js):
iframe = $("<iframe />", { src: 'javascript:""', frameBorder: "0" })
.css("display", "")
.addClass("k-content")
.insertBefore(textarea)[0];
wnd = iframe.contentWindow || iframe;
doc = wnd.document || iframe.contentDocument;
doc.open();
doc.write('STRIPPED FOR READABILITY');
doc.close();
在这里,它试图创建一个在编辑器中使用的 iframe。有关示例,请参见 ( http ://demos.kendoui.com/web/editor/index.html ) 上的源代码。但是,iframe.contentWindow、iframe.document 和 iframe.contentDocument 都是 null。从逻辑上讲,此代码在尝试执行 doc.open(); 时失败;并导致上述异常。
经过一番搜索 StackOverflow 得出以下结论:为什么 iframe.contentWindow == null?. 文档的准备情况似乎存在问题。
有人知道如何解决这个问题吗?或者有没有人有使用 DurandalJS(不是新的 v2)和淘汰剑道的经验?
我正在使用 Durandal JS 1.2.0。
提前致谢。
编辑
对 jquery、knockout 和 kendo ui 和 knockout-kendo 的脚本引用是通过 MVC Bundle.Config 完成的。
kendoEditor 初始化通过以下方式完成:
<textarea id="emailTemplate" data-bind="kendoEditor: content"></textarea>