我有使用 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*。
谢谢!