1

我正在使用kendo-editor所见即所得的文本编辑,效果很好。但是当在里面kendo-editor时我得到这个错误kendo-window

TypeError: Cannot read property 'open' of null
    at Widget.extend._createContentElement (webpack:///./kendo-ui/js/kendo.editor.js?:426:16)
    at Widget.extend._initializeContentElement (webpack:///./kendo-ui/js/kendo.editor.js?:512:40)
    at new Widget.extend.init (webpack:///./kendo-ui/js/kendo.editor.js?:282:18)
    at HTMLTextAreaElement.eval (webpack:///./kendo-ui/js/kendo.core.js?:3104:32)
    at Function.jQuery.extend.each (webpack:///../Scripts/jquery.js?:374:23)
    at jQuery.fn.jQuery.each (webpack:///../Scripts/jquery.js?:139:17)
    at $.fn.(anonymous function) [as kendoEditor] (webpack:///./kendo-ui/js/kendo.core.js?:3103:26)
    at createIt (webpack:///./kendo-ui/js/kendo.angular.js?:192:31)
    at createWidget (webpack:///./kendo-ui/js/kendo.angular.js?:168:20)
    at link (webpack:///./kendo-ui/js/kendo.angular.js?:681:34)

发生在kendo.editor.js中。

iframe = $("<iframe />", { title: editor.options.messages.editAreaTitle, frameBorder: "0" })[0];

$(iframe)
    .css("display", "")
    .addClass("k-content")
    .insertBefore(textarea);


iframe.src = src;

wnd = iframe.contentWindow || iframe;
doc = wnd.document || iframe.contentDocument;

$(iframe).one("load", function() {
    editor.toolbar.decorateFrom(doc.body);
});

doc.open(); // throws TypeError: Cannot read property 'open' of null
doc.write(

请注意,没有错误,并且当kendo-editor不在kendo-window.

有没有人遇到过这样的事情,什么是解决方案/解决方法?

4

1 回答 1

1

剑道编辑器实例应该在剑道窗口打开之后调用,换句话说,在它的容器在 DOM 中之后。

您应该在 open 事件中创建 kendoEditor:

$("<div/>").kendoWindow({
  open: function(e){
    $("#myTextarea").kendoEditor();
  }
});
于 2015-11-27T01:13:43.990 回答