qtwebengine加载了一个网页www.bocang.com, 点击网页中某一个按钮,如何获取或者监听该按钮点击后的 “收到消息data”“来源origin”"发送方source" c+ qt 代码实现
3条回答 默认 最新
- 阿里嘎多学长 2025-03-26 20:40关注
阿里嘎多学长整理AIGC生成,因移动端显示问题导致当前答案未能完全显示,请使用PC端查看更加详细的解答过程
QtWebEngine 加载网页,监听网页按钮点击后的消息
QtWebEngine 提供了多种方式来监听网页中的事件,包括按钮点击事件。下面是一种常见的解决方案:
- 使用
QWebEnginePage
的runJavaScript
方法来执行 JavaScript 代码,获取按钮点击事件的信息。
QWebEnginePage *page = ...; // 获取 QWebEnginePage 对象 page->runJavaScript("document.addEventListener('click', function(event) { ... });");
在上面的代码中,我们使用
runJavaScript
方法来执行 JavaScript 代码,添加一个点击事件监听器。事件监听器将在按钮点击时被触发,并将事件对象event
传递给回调函数。- 使用
QWebEnginePage
的javaScriptConsoleMessage
信号来监听 JavaScript console 消息。
QWebEnginePage *page = ...; // 获取 QWebEnginePage 对象 connect(page, &QWebEnginePage::javaScriptConsoleMessage, this, &MyClass::onJavaScriptConsoleMessage); void MyClass::onJavaScriptConsoleMessage(const QString &message, int lineNumber, const QString &sourceId) { if (message.startsWith("Button clicked")) { // 处理按钮点击事件 } }
在上面的代码中,我们使用
javaScriptConsoleMessage
信号来监听 JavaScript console 消息。如果消息包含 "Button clicked" 字符串,我们就处理按钮点击事件。- 使用
QWebEnginePage
的acceptNavigationRequest
方法来监听网页中的链接点击事件。
QWebEnginePage *page = ...; // 获取 QWebEnginePage 对象 page->setAcceptNavigationRequest(true); void MyClass::acceptNavigationRequest(QWebEnginePage *page, const QUrl &url, QWebEnginePage::NavigationType type) { if (type == QWebEnginePage::NavigationTypeLinkClicked) { // 处理链接点击事件 } }
在上面的代码中,我们使用
acceptNavigationRequest
方法来监听网页中的链接点击事件。如果链接点击事件被触发,我们就处理事件。这些方法可以单独使用,也可以组合使用以实现更复杂的事件监听器。
解决 无用评论 打赏 举报 - 使用