2014-12-22 86 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