当前位置: 代码迷 >> QT开发 >> QWebView显示网页,请教是否有函数能获得一个网页中的链接的指针
  详细解决方案

QWebView显示网页,请教是否有函数能获得一个网页中的链接的指针

热度:265   发布时间:2016-04-25 02:57:48.0
QWebView显示网页,请问是否有函数能获得一个网页中的链接的指针
我是想获得一张网页中的超链接的指针。这张网页的超链接仅仅是在网页中起到一个定位的作用。如下

目录
1
2
3
内容
1。。。。。。

2。。。。。。

3。。。。。。

一张网页,当我点击“1”时,跳到内容“1。。。。。。”这里,其他2,3也一样。

然而我是想要获得目录中链接,1,2,3,的指针。如果能返回QUrl的指针当然就好了。希望有大虾出现指教。期待。。。。

------解决思路----------------------
看你网页这么熟,那就肯定就知道css选择器.


#include <QWebPage>
#include <QWebFrame>
#include <QWebElementCollection>

QWebElementCollection col = ui->webView->page()->mainFrame()->findAllElements("你的路径选择器");
for (int i = 0; i < col.count(); ++i)
{
    qDebug() << col.at(i).toOuterXml();
}

------解决思路----------------------
这里有很多种办法,

这种适用性不强,组合url的情况很多,得自己组和出正确的url.

    QWebElement col = ui->webView->page()->mainFrame()->findFirstElement("a[href][id=xdd]");

    QUrl url(ui->webView->url());
    QString strUrl = url.toString() + col.attribute("href");
    ui->webView->load(QUrl(strUrl)); //组合出一个url 大概是这样的xxxx.html#xxxx;



还有就是直接调用javascript,但我测试的时候没有成功,我没有去深究原因

QWebElement col = ui->webView->page()->mainFrame()->findFirstElement("a[href][id=xdd]");
col.evaluateJavaScript("this.click()");



其它的什么方法不说了,自己研究