这是我的问题:我将CKEditor集成到QT程序中。我想在我的程序中创建一些函数来执行CKEditor工具栏中的一些命令。例如,我想要一个函数" bold()"将该样式应用于所选文本。到目前为止,我已经成功完成了这项工作:
void On_ActionBold_Triggered()
{
this->page()->mainFrame()->evaluateJavaScript("var editor = CKEDITOR.currentInstance;"
"var style = new CKEDITOR.style( { element: 'strong', overrides: 'b' } );"
"if ( style.checkActive(editor.elementPath(), editor ) )"
"editor.removeStyle( style );"
"else if ( !style.checkActive(editor.elementPath(), editor ) )"
"editor.applyStyle( style );");
}
这使用函数" applyStyle()"来自CKEditor。但是我必须实现一些条件来检查所选文本是否已经具有样式,以便根据情况应用或删除样式。随着" Bold"按钮,这非常简单。但是使用其他一些按钮,它不会那么简单,我试图避免重新实现所有按钮的功能重新实现的麻烦。我想知道是否有更直接的方法来构建这个函数。像这样:
void On_ActionBold_Triggered()
{
this->page()->mainFrame()->evaluateJavaScript("var editor = CKEDITOR.currentInstance;"
"editor.executeWhateverCommandIsAssociattedWithTheBoldButtonInToolbar();");
}
有没有办法做到这一点?我想另一种选择是查看CKEditor的源代码,只需复制并粘贴不同按钮的函数实现。但我仍然没有设法找到源中不同按钮的功能实现...任何建议都将不胜感激。
更新:
我最终找到问题的解决方案。我现在就是这样做的:
void CKEditor_Bold(){this->page()->mainFrame()->evaluateJavaScript("CKEDITOR.currentInstance.execCommand('bold');");}