2014-12-22 3 views
2

링크를 클릭하면 어떻게 링크의 URL을 가져 옵니까?QWebView에서 onClick에 대한 링크 URL을 얻는 방법은 무엇입니까?

A 태그에 링크가있는 경우 간단합니다. linkClicked(const QUrl&) 신호를 특정 슬롯에 연결하기 만하면됩니다.

그러나 나는 그것의 세포 (생성 된 HTML : "<td onClick=\"window.location.href='" + link_ + "';\" ...... blahblahblah ") 상에"onclick을 "이벤트와 테이블이있는 경우.?,이 동작하지 않습니다

답변

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()) 

그러나 참고 그쪽을 t 모든 탐색 요청이이 메서드를 통해 전달되므로 요청을 처리하지 않을 경우 구현시 True을 반환해야합니다.

+0

이것은 'window.location ='... '과 같은 자바 스크립트 탐색을 처리하지 않는 것 같습니다. – Inverse

+0

@Inverse. 즉,'window.location.href = url'은'window.location = url'과 똑같이 작동하며, 모든 것은 acceptNavigationRequest를 통해 진행됩니다. 다른 동작을 생성하는 코드 예제가있는 경우 새로운 질문으로 게시하는 것이 좋습니다. – ekhumoro