挂钩到insertElement事件是否安全?

时间:2013-06-04 16:05:40

标签: javascript ckeditor

这与Image dialog — extend onOk, instead of total overwrite密切相关,只是我想到了另一种解决方案:

editor.on('insertElement', function (ev)
{
    var element = ev.data.$;

    if (element.tagName.toUpperCase() == 'IMG')
    {
         // do stuff with element
    }
});

这很有效。

这个解决方案的问题在于CKEditor's Docs它说:

  

执行insertElement调用的内部事件。

依靠内部事件是否安全?

1 个答案:

答案 0 :(得分:3)

依赖这个事件有点冒险,虽然我很确定它在次要版本中不会被改变,因为我们正在避免这种变化。

但它可能会在未来的主要版本中进行修改。例如,在CKEditor 4.0中,我们被迫修改editor#insertHtmleditor#paste,从而破坏了它们的向后兼容性。但是,editor#paste是一个正常的公共事件,正如您所看到的 - 如果没有其他,干净的方法来解决某些设计问题,一切都可能会发生变化。

因此,我认为您可以依赖此事件,但就像其他所有API一样 - 主要版本可以带来一些必要的更改。

PS。覆盖对话框定义的onOk方法是一种更好的解决方案。

更新:在我看来,insertXXX事件三重奏被错误地记录为内部。他们没有内在的东西,在类似的情况下它们非常有用。我们或许会改变他们的描述。