我有一个webView
设置来显示聊天消息。
我是这样开始的:
ui->webView->setHtml("<html style=\"font-family:Lucida Grande;font-size:13px;\">
<head></head>
<body style=\"padding:0px;margin:0px;\">
<div id=\"date\"style=\"position:fixed;top:0;height:40px;background-color:#ffffff;opacity:0.9;width:100%;border-bottom:1px solid #f1f1f1;\"><span style=\"display:block;color:#6d7382;padding-top:12px;padding-left:14px;\">friday</span></div>
<div style=\"padding:12px;background-color:#f5f5f5;display:block;border-bottom:1px solid #f1f1f1;border-top:1px solid #f1f1f1;\"><div style=\"color:#606775;font-weight:bold;\">Bill</div><div style=\"color:#5a5a5a;\"><p>Hello</p></div></div>
</body></html>");
(以上代码全部在QT的一行,我只需按Enter键以便于在此处阅读)
现在我正试图弄清楚如何以新聊天消息的形式附加div's
。
试图像这样追加:
QString html = "<div>Test test</div>";
QString js = QString("document.execCommand('InsertHTML',false,'%1');").arg(html);
ui->webView->page()->mainFrame()->evaluateJavaScript(js);
关闭日期工作正常,我这样做:
// Switches out the date
QWebFrame *pSource = ui->webView->page()->mainFrame();
QWebElement dateDiv = pSource->findFirstElement("#date");
dateDiv.replace("<div id=\"date\"style=\"position:fixed;top:0;height:40px;background-color:#ffffff;opacity:0.9;width:100%;border-bottom:1px solid #f1f1f1;\"><span style=\"display:block;color:#6d7382;padding-top:12px;padding-left:14px;\">sunday</span></div>");
然而,插入新的div's
是我无法开展的工作。
我有什么想法吗?
答案 0 :(得分:1)
这为我添加了给定的div给QWebView:
ui->webView->page()->mainFrame()->documentElement().appendInside(html);
顺便说一句。长长的html你可以像这样分开:
ui->webView->page()->mainFrame()->setHtml("<html style=\"font-family:Lucida Grande;font-size:13px;\">" \
"<head></head>" \
"<body style=\"padding:0px;margin:0px;\">" \
"<div id=\"date\"style=\"position:fixed;top:0;height:40px;background-color:#ffffff;opacity:0.9;width:100%;border-bottom:1px solid #f1f1f1;\"><span style=\"display:block;color:#6d7382;padding-top:12px;padding-left:14px;\">friday</span></div>" \
"<div style=\"padding:12px;background-color:#f5f5f5;display:block;border-bottom:1px solid #f1f1f1;border-top:1px solid #f1f1f1;\"><div style=\"color:#606775;font-weight:bold;\">Bill</div><div style=\"color:#5a5a5a;\"><p>Hello</p></div></div>" \
"</body></html>");