qt – 如何获取iframeframe QWebElement的QWebFrame?

qt – 如何获取iframeframe QWebElement的QWebFrame?,第1张

概述我有简单的Qt GUI应用程序,它使用QtWebkit.我正在加载具有大量嵌套IFRAME标签的复杂页面.我想遍历完整的DOM树(就像调试面板中的Chrome浏览器一样),包括iframe的内容. 我的代码是: QWebElement doc = ui->webView->page()->mainFrame()->documentElement();QWebElement iframe = do 我有简单的Qt GUI应用程序,它使用QtWebkit.我正在加载具有大量嵌套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?全部内容,希望文章能够帮你解决qt – 如何获取iframe / frame QWebElement的QWebFrame?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1059232.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-25
下一篇 2022-05-25

发表评论

登录后才能评论

评论列表(0条)

保存