我有一个简单的Qt应用程序,它使用QtWebkit。我正在用很多嵌套的IFRAME标签加载复杂的页面。我想遍历完整的DOM树(就像Chrome浏览器在debug-panel中做的那样),包括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*。
谢谢!
发布于 2012-11-15 20:39:23
每个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
}发布于 2015-05-08 05:20:55
“从当前页面获取所有框架元素
https://stackoverflow.com/questions/13189296
复制相似问题