CKEDITOR - 默认情况下打开粘贴为纯文本窗口

Mel*_*ssa 2 ckeditor

我正在寻找一种方法来确保如果用户使用ctrl + v粘贴文本,我总是得到纯文本.

我试过添加config.forcePasteAsPlainText = true; 到我的CKEDITOR.editorConfig功能,我仍然得到大量的nbsp; 我似乎能够获得真正的纯文本的唯一方法是使用工具栏上的粘贴作为纯文本按钮.如果用户使用ctrl + v粘贴并将其粘贴在那里,是否有办法打开该窗口.我知道可以用fckeditor完成,但是无法弄清楚如何使它在ckeditor中工作.

任何帮助将不胜感激!谢谢

Rei*_*mar 5

我检查了最新的SVN版本(应该与3.6.3有很大不同),当我设置时forcePasteAsPlainText : true(注意 - 你必须在初始化编辑器之前执行此操作,否则editor.replace( el, config )- 稍后执行此操作将无效.

我正在粘贴(通过ctrl + v)复制网站的一部分并正确粘贴文本.没有样式,没有多余和非纯文本元素.

但是, 实体在纯文本中完全正确 - 它们替换了多个空格,并且对于粘贴文本对话框粘贴的内容,您将获得相同的结果.

如果您仍想在ctrl + v上打开pastetext对话框,则可以使用CKEDITOR.config.keystrokes.此数组中有几个默认值,因此您不应覆盖它们,但可以添加自己的击键(在初始化编辑器之前):

CKEDITOR.config.keystrokes.push(
    [ CKEDITOR.CTRL + 86, 'pastetext' ]
);
Run Code Online (Sandbox Code Playgroud)

如果你只想为一个编辑器添加这个键击(因为编辑全局配置会影响所有),那么你将不得不使用自定义配置文件(参见http://docs.cksource.com/CKEditor_3.x/Developers_Guide/Setting_Configurations#Using_the_config .js_File)并以这种方式添加你的击键:

CKEDITOR.editorConfig = function( config )
{
    config.keystrokes = [
        // copy here all keystrokes from _source/plugins/keystrokes/plugin.js
        [ CKEDITOR.CTRL + 86, 'pastetext' ]
    ];
};
Run Code Online (Sandbox Code Playgroud)

这种OFC方式不方便,但这将在CKEditor的下一个主要版本中修复.