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) によってセットアップされる可能性があることを認識しています。

だから私はそれを解決するためにいくつかの方法を試しました(ex style.apply(editor.getSelection()).getNative())

しかし、私は解決策を見つけることができません。それはまったく機能しません、助けてください!

4

1 に答える 1

1

これは思ったほど簡単ではありません。選択範囲を要素にラップする div プラグインのソース コードを見てください。DIVこれはあなたにとってインスピレーションになるかもしれません。ただし、タグの重複などの病理学的なケースを回避するには、DOM ハッキングのスキルが必要になることに注意してください。

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

上記はこれに変換できません。

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

それは間違ったマークアップです。

とにかく、頑張ってください!

于 2012-09-24T17:42:01.410 に答える