我只是按照引用在ckeditor / plugins中添加一个文件夹并将其命名为button-pre
这是源
(function(){
var a={
exec:function(editor){
var format={element:'pre'};
var style=new CKEDITOR.style(format);
style.apply(editor.document);
}
},
b='button-pre';
CKEDITOR.plugins.add(b, {
init:function(editor){
editor.addCommand(b, a);
editor.ui.addButton('button-pre', {
label:'Button PRE',
icon:this.path+'button-pre.png',
command:b
});
}
});
})();
这是我的问题
当我滚动鼠标选择几行并希望将其转换为标记PRE时,它总是转换所有文档。
我意识到它可能是由style.apply(editor.document)设置的。
所以我尝试了一些解决方法(对于ex style.apply(editor.getSelection()。getNative())
但我无法找到任何解决方案。它根本不起作用,请帮助!
答案 0 :(得分:1)
这并不像看起来那么容易。请查看the source code of the div plugin,其中将选择内容包含在DIV
元素中。这可能是你的灵感来源。但请注意,您需要在DOM黑客攻击方面有很多技巧才能避免像标记重叠这样的病态案例:
<p>First [paragraph</p><p>Second]^ paragraph</p>
上述内容无法转换为:
<p>First <pre>paragraph</p><p>Second</pre> paragraph</p>
因为这是一个错误的标记。
祝你好运,无论如何!