问:如何在光标位置将html插入可编辑的QWebView?

时间:2013-07-25 17:39:43

标签: qt qwebview qwebkit

我正在尝试使用QWebView来实现博客文章编辑器。我有一些示例html片段通过触发菜单操作插入编辑器。但是,QTextEdit插入html并不方便。至于为什么我不使用QTextEdit,请参阅以下测试代码:

QTextEdit *edit = new QTextEdit;
edit->insertHtml(tr("<div class=\"gci-hello\">Hello</div>"));
qDebug() << edit->toHtml(); // --> the div tag disappeared

因此,如果我使用QWebView,div标签将被保留。但我无法找到如何在视图上的光标位置插入我的代码段。

1 个答案:

答案 0 :(得分:2)

execCommandInsertHTML

一起使用
QString html = "<div>Some text</div>";
QString js = QString("document.execCommand('InsertHTML',false,'%1');").arg(html);
webview->page()->mainFrame()->evaluateJavaScript(js);

如果HTML代码段中有单引号字符,请确保使用反斜杠引用它们,因为代码段是通过JS字符串注入的。