我在Widget插件的plugin.js第2509行获得Uncaught TypeError: Cannot read property 'attributes' of null
。
之前我们没有任何错误,但之后将我们的插件转换为Widget,并且遇到了一些问题,这些问题会导致我们的CMS(Drupal + WYSIWYG插件)无法保存更新的内容。
我们创建了一个使用CKEDITOR.dom.node.remove()的contextMenu项“delete”,当我们这样做时,它会在向下转发时抛出错误。使用剪贴板插件的键盘'cut'命令不会在向下转换时抛出错误。
从编辑器中销毁,删除或删除Widget的正确方法是什么?
我已经尝试了http://docs.ckeditor.com/#!/api/CKEDITOR.plugins.widget.repository-method-destroy,但它无法使用。此外,它不是我试图强制内联的块级元素(http://ckeditor.com/forums/Support/inline-widget-error-on-downcast)。
这里失败了,使用了element.getFirst()然后错误发生在if ( widgetElement.attributes...
上:
if ( 'data-cke-widget-id' in attrs ) {
widget = widgetsRepo.instances[ attrs[ 'data-cke-widget-id' ] ];
if ( widget ) {
widgetElement = element.getFirst( isParserWidgetElement );
toBeDowncasted.push( {
wrapper: element,
element: widgetElement,
widget: widget,
editables: {}
} );
// If widget did not have data-cke-widget attribute before upcasting remove it.
if ( widgetElement.attributes[ 'data-cke-widget-keep-attr' ] != '1' )
delete widgetElement.attributes[ 'data-widget' ];
}
}
答案 0 :(得分:0)
这是我的开发人员错误。我没有删除()小部件的父包装器。如果在remove()上出现此错误,请确保检查DOM并确保删除了widget包装器。如果它仍在那里你做错了,需要更好地定位你的remove()。