gpt4 book ai didi

qt - 如何获取 iframe/frame QWebElement 的 QWebFrame?

转载 作者:行者123 更新时间:2023-12-01 04:01:36 27 4
gpt4 key购买 nike

我有使用 QtWebkit 的简单 Qt GUI 应用程序。我正在加载带有很多嵌套 IFRAME 标签的复杂页面。我想遍历完整的 DOM 树(就像 Chrome 浏览器在调试面板中所做的那样),包括 iframe 的内容。

我的代码是:

QWebElement doc = ui->webView->page()->mainFrame()->documentElement();
QWebElement iframe = doc.findFirst("iframe[id=someid]");
QWebFrame *webFrame = ....? // how to get the QWebFrame for an iframe/frame QWebElement?

笔记:
我可以遍历所有帧(包括嵌套):
void MainWindow::renderFramesTree(QWebFrame *frame, int indent)
{
QString s;
s.fill(' ', indent * 4);
ui->textLog->appendPlainText(s + " " + frame->frameName());
foreach (QWebFrame *child, frame->childFrames())
renderFramesTree(child, indent + 1);
}

但我的问题与此无关。我需要获取 iframe-QWebElement 的相应 QWebFrame*。

谢谢!

最佳答案

每个 QWebFrame 都有 QList<QWebFrame *> QWebFrame::childFrames () const方法。每帧还有QString QWebFrame::frameName () const .将两者结合起来可能会让您找到所需的东西。

QWebFrame * frameImLookingFor = NULL;
foreach(QWebFrame * frame, ui->webView->page()->mainFrame()->childFrames())
{
if (frame->frameName() == QLatin1String("appFrame"))
{
frameImLookingFor = frame;
break;
}
}

if (frameImLookingFor)
{
// do what you need
}

关于qt - 如何获取 iframe/frame QWebElement 的 QWebFrame?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13189296/

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