(修改后的答案)
您可以使用tinymce.DOM.encode()
将所有HTML标记转换为其实体,例如。<
对于<
和>
对于>
:
var html = tinymce.DOM.encode(e.data.code);
然后,要保留尾随空格,请执行以下操作:
html = html.replace(/(^ +| +$)/gm, function(match, p1){
return p1.replace(/ /g, \' \');
});
将所有换行符转换为
<br>
:
html = html.replace(/(?:\\r\\n|\\r|\\n)/g, \'<br>\');
所以你的
onSubmit
看起来像,你可以试试
here:
onSubmit: function(e) {
ed.focus();
ed.undoManager.transact(function() {
// Encode all HTML tags to their entities.
var html = tinymce.DOM.encode(e.data.code);
// Then convert trailing whitespaces to ` `.
html = html.replace(/(^ +| +$)/gm, function(match, p1){
return p1.replace(/ /g, \' \');
});
// Finally, convert line breaks to `<br>`.
html = html.replace(/(?:\\r\\n|\\r|\\n)/g, \'<br>\');
// Make sure the format is "raw".
ed.insertContent(\'<code>\' + html + \'</code> \');
});
ed.selection.setCursorLocation();
ed.nodeChanged();
}
贷记至
this SO answer 对于换行符转换