Как получить необработанные данные ответов в QWebEngineView? - PullRequest
0 голосов
/ 11 января 2020

Следующие примеры работают на небольших html страницах, но не работают, если страница возвращает большие html данные или json

Я пытаюсь сделать это после сигнала loadFinished

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

I см. «результат готов», но вторая строка не печатается, также я пытаюсь это сделать:

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

, но снова не вижу вторую строку

1 Ответ

0 голосов
/ 12 января 2020

Все примеры работают правильно, но если буфер очень большой qDebug не печатает данные, вы можете записать данные в файл или распечатать часть данных

Пример (вызов Html после сигнала loadFinished):

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