gpt4 book ai didi

javascript - 如何在QWebView上获取DOM insideText?

转载 作者:行者123 更新时间:2023-11-28 05:14:27 25 4
gpt4 key购买 nike

如何获取 QWebView 上的所有 document.body.innerText?我使用QT版本5.5.1。

例如,

要加载的html文件

<script>
document.write("hello world!");
</script>

我想要得到“hello world”。

所以,我在QT上尝试过这样

QWebView *wv = new QWebView(this);
QWebFrame *frame = wv->page()->mainFrame();
frame->load(QUrl("file:// ~ file path ~"));
QString string = frame->toPlainText();
// then write string to file for checking

我期望该字符串是“hello world”,但是什么也没有。我搜索并找到了这个link ,我就这样改了代码,但还是没有任何结果。

我可能误解了 toPlainText() 吗?我如何在 QT 5.5 上获取 DOM insideText?

最佳答案

您没有留出足够的时间来更新页面。 HTML 的加载需要一些时间,更不用说 Javascript 的执行了。

这里有一些解决方法:

  1. 使用 QTimer在调用 toPlainText() 之前等待几秒钟。这很棘手,因为无法确切知道要等待多长时间,但足以用于演示目的。
  2. 更新 Javascript 代码,以便在调用 document.write() 后向您的 C++ 代码发回通知。例如,您可以通过 WebSocket 执行此操作,或使用 Qt WebChannel .

关于javascript - 如何在QWebView上获取DOM insideText?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41093151/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com