2012-06-19 155 views
2

我正在寻找一种方法,以确保如果用户使用ctrl + v粘贴文本,我总能得到纯文本。CKEDITOR - 默认情况下打开粘贴为纯文本窗口

我已经尝试添加config.forcePasteAsPlainText = true;到我的CKEDITOR.editorConfig函数,我仍然得到大量的nbsp;等 我似乎能够得到真正纯文本的唯一方法是使用粘贴作为工具栏上的纯文本按钮。 有没有办法打开该窗口,如果用户使用Ctrl + V粘贴并让他们粘贴在那里。 我知道这可以用fckeditor来完成,但一直没能弄清楚如何使它在ckeditor中工作。

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

回答

5

我查了最新的SVN版本(应当从3.6.3差别很大),当我设置forcePasteAsPlainText : true(注意 - 你必须初始化编辑器之前或editor.replace(el, config)这样做 - 这样做以后将无法正常工作。

我粘贴(按CTRL + v)复制一个网站的一部分,文本被正确粘贴,没有造型,没有多余的和非纯文本元素。

然而, 实体完全以纯文本格式更正 - 它们会替换多个空格,并且对于通过pastetext对话框粘贴的内容,您将得到相同的结果。

如果您仍想在ctrl + v上打开pastetext对话框,则可以使用CKEDITOR.config.keystrokes。目前正在对夫妇在这个数组中的默认值,所以你不应该忽略他们,但你可以添加自己的按键(编辑初始化前):

CKEDITOR.config.keystrokes.push(
    [ CKEDITOR.CTRL + 86, 'pastetext' ] 
); 

如果你想添加这个按键只有一个编辑器(因为编辑全局配置影响所有),那么你将不得不使用自定义配置文件(见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' ] 
    ]; 
}; 

这样OFC不方便,但是这将是固定在CKEditor的下一个主要版本。

+0

谢谢!正是我想要做的,并完美的工作:) – Melissa

相关问题