CKEditor:从javascript

时间:2015-11-13 16:28:27

标签: qt ckeditor

这是我的问题:我将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');");}

0 个答案:

没有答案