2017-01-12 14 views
-1

Summernoteツールバーに2つのカスタムボタンを追加しようとしています。1つは改行を追加し、もう1つは小さなスタイルでテキストを挿入します。ボタンを使用すると、htmlを消去し、目的の結果(改行または小さなテキストの挿入)を実行しません。どのようにツールバーの選択からhtmlを挿入して変更できないのですか?ここでSummernoteのカスタムツールバーボタンにhtmlを挿入する際の問題

のjQueryをレンダリングするボタンです:

var BR_Button = function (context) { 
 
    var ui = $.summernote.ui; 
 

 
    // create button 
 
    var button = ui.button({ 
 
    contents: 'BR', 
 
    tooltip: 'Line Break', 
 
    click: function() { 
 
     // invoke insertText method with 'hello' on editor module. 
 
     context.invoke('editor.insertText', '<br/>'); 
 
    } 
 
    }); 
 

 
    return button.render(); // return button as jquery object 
 
} 
 

 
var Small_Button = function (context) { 
 
    var ui = $.summernote.ui; 
 

 
    // create button 
 
    var button = ui.button({ 
 
    contents: 'small', 
 
    tooltip: 'Small Style Emphasis', 
 
    click: function() { 
 
     // invoke insertText method with 'hello' on editor module. 
 
     context.invoke('editor.insertText', '<small>small text</small>'); 
 
    } 
 
    }); 
 

 
    return button.render(); // return button as jquery object 
 
}

とツールバーのカスタマイズコード:

$('#id_text').summernote({ 
 
\t \t toolbar: [ 
 
\t \t ['paragraph', ['paragraph']], 
 
\t \t ['fontsize', ['style','fontname','fontsize','height']], 
 
\t \t ['style', ['bold', 'italic', 'underline', 'clear']], 
 
\t \t ['font', ['small','strikethrough', 'superscript', 'subscript']], 
 
\t \t ['color', ['color']], 
 
\t \t ['para', ['BR','ul', 'ol',]], 
 
\t \t ['insert', ['table','link','picture','video','hr']], 
 
\t \t ['codeview', ['codeview']], 
 
\t \t ], 
 
\t \t focus: true, 
 
\t \t buttons: { 
 
\t \t \t \t small: Small_Button, 
 
\t \t \t \t BR: BR_Button 
 
\t \t \t \t } 
 
\t \t });

のTh電子の問題は、代わりに「editor.insertText」を使用しての

答えて

0

..私はツールバーのBRボタンを押したときに、それは私に実際の改行を与えていない、< BR/>を挿入することである「editor.pasteHTML」を使用し、これは、安全な文字を強制するのではなくhtmlを挿入することを可能にします。

var BR_Button = function(context){ var ui = $ .summernote.ui;

//ボタンを VARボタンを作成= ui.button({ 内容: 'BR'、 ツールチップ: '挿入改行'、 クリック:関数は、(){ //」とinsertTextメソッドを呼び出しますエディタモジュール上でhelloを実行します。 context.invoke( 'editor.pasteHTML'、 '
'); } });

関連する問題