【问题标题】:How get raw answer data in QWebEngineView?如何在 QWebEngineView 中获取原始答案数据?
【发布时间】:2020-01-11 20:39:48
【问题描述】:

下一个示例适用于小 html 页面,但如果页面返回大 html 数据或 json 则不起作用

我在 loadFinished 信号后试试这个

    view->page()->toHtml([cc](const QString &result){
        qDebug() << "result ready";
        qDebug() << "result string ="<<result;
    });

我看到“结果就绪”,但第二个字符串没有打印出来,我也试试这个:

    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();
    });

但又看不到第二个字符串

【问题讨论】:

    标签: qt http qwebengineview


    【解决方案1】:

    所有示例都正常工作,但如果缓冲区很大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();
    }
    

    【讨论】:

      猜你喜欢
      • 2018-02-14
      • 2013-06-09
      • 1970-01-01
      • 2014-03-26
      • 2012-06-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多