2

我只是按照参考在 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) 的东西设置的。

所以我尝试了一些方法来解决这个问题(例如 style.apply(editor.getSelection().getNative())

但我找不到任何解决方案。它根本不起作用,请帮助!

4

1 回答 1

1

这并不像看起来那么容易。请查看将选择包装到元素中的 div 插件的源代码。DIV这可能对你有启发。但是,请注意,您需要掌握 DOM hacking 方面的大量技能,以避免出现一些异常情况,例如标签重叠:

<p>First [paragraph</p><p>Second]^ paragraph</p>

上面不能转换成这个:

<p>First <pre>paragraph</p><p>Second</pre> paragraph</p>

因为这是一个错误的标记。

无论如何,祝你好运!

于 2012-09-24T17:42:01.410 回答