c++ - qwebengineview qt5.9如何提取数据

标签 c++ qt

我有一个简单的网页,我想提取文本 My First Heading。

<!DOCTYPE html>
<html>
<script type="text/javascript">

//This is a single line comment

/* This is a
block comment */

</script>
<body>

<h1 id="title">My First Heading</h1>
<p  id="text">My first paragraph.</p>
</body>
</html>

页面加载正常,但 runJavascript 函数未返回任何内容。 我尝试了不同的变化。我预期的调试输出应该是 My First Heading。我错过了什么?

 QString path("C:\\Temp\\x.html");
 QFile file(path);
 QString source;
 file.open(QIODevice::ReadOnly);
 source = file.readAll();
 file.close();

 page = new QWebEnginePage();
 page->load(QUrl::fromLocalFile(path));
 ui->widget->setPage(page);
 ui->widget->setContextMenuPolicy(Qt::NoContextMenu);

 //page->runJavaScript("document.getElementById(title)", [](const QVariant&result){ qDebug() << result.toString();});

//page->runJavaScript("document.getElementById(\"title\")", [](const QVariant&result){ qDebug() << result.toString();});

//page->runJavaScript("document.getElementById('title')", [](const QVariant&result){ qDebug() << result.toString();});

最佳答案

文档说当页面内容完全加载时会发出一个信号:loadFinished . 所以我认为你应该将这个信号连接到一个自定义槽,只有在这个槽被调用之后你才能访问页面的内容。

关于c++ - qwebengineview qt5.9如何提取数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45616469/

相关文章:

c++ - void指针的相关性

c++ - 如何使用 C++ 在 sqlite3 中打开受密码保护的数据库?

c++ - 如何在 OpenGL 中绘制顶点之间的边?

C++:在 "try"外部创建的类型会导致错误,但在内部则不会

c++ - 如何向 Qt 4.8.6 添加自定义小部件

c++ - 各种初始化和构造之间的关系?

c++ - 是否可以序列化 QSettings 然后恢复它们?

c++ - Qt, "convert project to qmake generated project"在Visual Studio中做什么

c++ - Qt 错误 : After running the code, 在 qt 中获取 protobuf 错误

qt - Qt中如何获取所有正在运行的进程