如何在 QWebEngineView 中获取原始答案数据?
How get raw answer data in QWebEngineView?
下一个示例适用于小 html 页面,但如果页面 return 大 html 数据或 json
则不起作用
我在 loadFinished 信号后尝试这个
view->page()->toHtml([cc](const QString &result){
qDebug() << "result ready";
qDebug() << "result string ="<<result;
});
我看到了 "result ready",但是第二个字符串没有打印出来,我也试试这个:
v->page()->runJavaScript("function jsfun(){return document.getElementsByTagName('html')[0].outerHTML;};");
//v->page()->runJavaScript("alert(jsfun())"); //work correctly
v->page()->runJavaScript("jsfun();",[this](const QVariant &v) {
qDebug() << "result ready";
qDebug() << "result string ="<<v.toString();
});
但还是看不到第二个字符串
所有示例都可以正常工作,但是如果缓冲区很大qDebug
不打印数据,您可以将数据写入文件或打印部分数据
示例(在 loadFinished 信号后调用 toHtml):
view->page()->toHtml([cc](const QString &result){
QFile file("outerHTML.html");
if(!file.open(QFile::WriteOnly | QFile::Text)){
qDebug() << "Cannot create a file";
return;
}
QTextStream stream(&file);
stream << buff;
file.close();
}
下一个示例适用于小 html 页面,但如果页面 return 大 html 数据或 json
则不起作用我在 loadFinished 信号后尝试这个
view->page()->toHtml([cc](const QString &result){
qDebug() << "result ready";
qDebug() << "result string ="<<result;
});
我看到了 "result ready",但是第二个字符串没有打印出来,我也试试这个:
v->page()->runJavaScript("function jsfun(){return document.getElementsByTagName('html')[0].outerHTML;};");
//v->page()->runJavaScript("alert(jsfun())"); //work correctly
v->page()->runJavaScript("jsfun();",[this](const QVariant &v) {
qDebug() << "result ready";
qDebug() << "result string ="<<v.toString();
});
但还是看不到第二个字符串
所有示例都可以正常工作,但是如果缓冲区很大qDebug
不打印数据,您可以将数据写入文件或打印部分数据
示例(在 loadFinished 信号后调用 toHtml):
view->page()->toHtml([cc](const QString &result){
QFile file("outerHTML.html");
if(!file.open(QFile::WriteOnly | QFile::Text)){
qDebug() << "Cannot create a file";
return;
}
QTextStream stream(&file);
stream << buff;
file.close();
}