如何在QWebView中获取onClick上的链接URL?

时间:2014-12-22 14:40:32

标签: qt onclick pyqt pyside qwebview

点击链接后如何获取链接的网址?

如果我在A标记中有链接,那很简单:只需将linkClicked(const QUrl&)信号连接到特定的广告位。

但是,如果我有一个表" onClick"在其单元格上生成的事件(生成的html:"<td onClick=\"window.location.href='" + link_ + "';\" ...... blahblahblah"),它无法正常工作。为什么呢?

1 个答案:

答案 0 :(得分:2)

顾名思义,只有在链接被激活时才会发出linkClicked信号。

但您可以通过重新实现acceptNavigationRequest来拦截所有导航请求:

class WebPage(QtWebKit.QWebPage):
    def __init__(self, parent=None):
        super(WebPage, self).__init__(parent)
        self.setLinkDelegationPolicy(QtWebKit.QWebPage.DelegateExternalLinks)

    def acceptNavigationRequest(self, frame, request, type):
        print('Navigation Request:', request.url())
        return False

...

webview.setPage(WebPage())

但请注意,所有导航请求都是通过此方法传递的,因此只要不打算处理请求,您的实现就会返回True