2014-12-22 54 views
2

点击链接时如何获得链接的URL?如何获取QClick中的onClick链接网址?

如果我在A标签的链接,这很简单:只需连接linkClicked(const QUrl&)信号到特定插槽。

但是,如果我有它的细胞(生成html:"<td onClick=\"window.location.href='" + link_ + "';\" ...... blahblahblah“)与“点击”事件表。?,它不工作,为什么

回答

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每当它不打算处理该请求。

+0

这似乎并没有处理JavaScript的导航像'了window.location =“...”,'任何想法如何捕捉那些? – Inverse

+0

@反过来。它工作正常,我 - 即'window.location.href = url'的工作方式相同'了window.location = url',一切都经过'acceptNavigationRequest'。如果你有一个产生不同行为的代码示例,我建议你将它作为一个新问题发布。 – ekhumoro