这看起来很简单,我想在选择之前添加<strike>
并在选择之后添加/by User</strike>
..
这是我到目前为止所得到的:
CKEDITOR.plugins.add('test',
{
init: function (editor) {
editor.addCommand('inserttest',
{
exec: function (editor) {
var selection = editor.getSelection();
if (!selection) {
return;
}
var text = selection.getSelectedText();
editor.insertHtml('<strike>' + text + ' /By User </strike>');
}
});
editor.ui.addButton('test',
{
label: 'Insert test',
command: 'inserttest',
icon: this.path + 'images/test.png'
});
}
});
这有点作用,但它有一些怪癖它删除了所有的HTML,而且它也没有验证我们是否已经不在罢工内..
那么如何在不丢失HTML的情况下做到这一点?并验证我不在攻击标签内?
我试图分析插件的源代码,但发现至少可以说是令人困惑......
注意我使用asp.net控件女巫似乎使用CKEditor的3.6.4版本。
答案 0 :(得分:1)
我不知道你是否已经找到了答案,这个问题是实际的,但希望这个答案将来有助于发现这个错误。
而不是使用editor.insertHtml
为您的警示码创建一个元素,并仅将该元素添加到编辑器中。
selection.getSelectedText().setData(''); // cleans the selection
var strikeElement= editor.document.createElement('strike');
strikeElement.setText(text + ' /By User');
editor.insertElement(strikeElement);