2

使用 ckeditor 链接、图像和表格属性对话框时,如果用户单击取消,CKEDITOR 将检查是否有任何更改,如果有,则使用 js 确认弹出窗口提示用户。

如何在取消时禁用此提示;我们的 web 应用程序中没有其他对话框提示取消,这并不一致。

似乎没有一种方法可以获取事件的所有处理程序的列表以删除正在执行提示的事件。

我不想为每个对话框项指定一个自定义的 isChanged 来破解一个假的没有改变的东西。

是否有一种标准方法可以覆盖 CKEDITOR 中的 base on('cancel',...) 事件处理程序?我看到我可以对 dialogdefinition.OnLoad、OnOK、OnCancel 处理程序进行monkeypatch,但是我指的这个强制取消提示没有在对话框的 OnCancel 中完成。

我正在使用最新版本 4.2

4

3 回答 3

3

现在这是 4.3 版中支持的配置选项。只需指定config.dialog_noConfirmCancel = true创建对话框的时间。

查看http://docs.ckeditor.com/#!/api/CKEDITOR.config-cfg-dialog_noConfirmCancel

于 2013-11-18T16:10:28.193 回答
0

你在哪里很近。事实上它其实就是onCancel事件。这个问题有一张票,其中还包括一个解决方法:

CKEDITOR.on('dialogDefinition', function(dialogDefinitionEvent) {
    if (dialogDefinitionEvent.data.name == 'link') {
        var dialogDefinition = dialogDefinitionEvent.data.definition;
        // Get rid of annoying confirmation dialog on cancel
        dialogDefinition.dialog.on('cancel', function(cancelEvent) {
            return false;
        }, this, null, -1);
    }
});

如果您省略该if (dialogDefinitioNEvent.data.name == 'link')语句,它将禁用对所有对话框的检查。

handler 参数是这里的-1关键,因为它将处理程序插入到对话框插件的默认处理程序之前,该处理程序将永远不会被调用,因为它return false取消了对其他注册事件侦听器的取消事件的冒泡。

CKEditor Ticket #8331:能够忽略对话框上的“确认取消”警告

于 2013-10-16T14:35:38.507 回答
0

我可以确认最新版本的 ckEditor 可以使用“noConfirmCancel”属性。

我的工作代码片段如下:

<script type="text/javascript" src="#ckBasePath#/ckeditor.js" language="JavaScript"></script>
<script>
    thisConfig = CKEDITOR.config;
    thisConfig.autoParagraph = true;
    thisConfig.fillEmptyBlocks= true;
    thisConfig.dialog_noConfirmCancel = true;
    objSample = CKEDITOR.replace( 'Sample' , thisConfig);
</script>

http://docs.ckeditor.com/#!/api/CKEDITOR.config-cfg-dialog_noConfirmCancel

于 2014-06-25T16:09:58.010 回答