我们假设我在网页上有一个按钮,按下后,将使用BBCode格式化的特定$文本插入CKEditor。使用以下行可以很容易地将$ text插入到未解析的表单中:
CKEDITOR.instances.message.insertText(text);
但是如何将$ text插入已经解析过的表单中呢? .insertHtml以与insertText相同的形式粘贴。我知道它的Html但是找不到任何其他插入函数,所以我尝试了这个。
CKEDITOR.instances.message.insertHtml(text);
用preparsing粘贴东西的函数的名称是什么?当你执行CTRL + C和CTRL + V时,粘贴解析后的表单。
有人有想法吗?
答案 0 :(得分:2)
你可以尝试这个:
var writer = new CKEDITOR.htmlWriter();
CKEDITOR.htmlParser.fragment.fromBBCode( '[b]Bold[/b]' ).writeHtml( writer );
CKEDITOR.instances.message.insertHtml( writer.getHtml() );
它使用fromBBCode方法将BBCode转换为htmlParser的片段。
答案 1 :(得分:0)
好的,感谢@oleq CKEditor文档和我在某处找到解决方案的定制js的源代码。
@oleq解决方案仅适用于解析没有其他属性的标记。
所以[quote] [url]
等不是[quote="something"] [url="http://]
这一行应该解析并插入var text中的所有内容:
clickableEditor.Insert(text, bbcodeParser.bbcodeToHtml(text));
在插件MyBB CKEditor的自定义文件中找到它。基于代码:
MyBBEditor = {
insertText: function(a)
{
if(clickableEditor.editor.mode == 'wysiwyg')
{
clickableEditor.Insert(a, bbcodeParser.bbcodeToHtml(a));
}
else
{
clickableEditor.performInsert(a);
}
}
}
在MyBB论坛上拥有CKEditor插件的用户也可以使用:
MyBBEditor.insertText(your_variable);
让我知道这是否有一些我忘记的缺陷或事情 - 比如异常?