根据该文件 ,在创建新窗口信号时调用WebKit是创建一个新的窗口。 我一直在试图重写此方法以处理<a target='_blank'
在PyGTK的WebKit浏览器链接。 在WebView中的一个子类,我有:
...
self.connect("create-web-view", self.newWin)
...
def newWin(view, frame, data):
print view.get_property('uri')
print frame.get_property('uri')
print data.get_property('uri')
点击新窗口的链接时,这就是所谓的,但由于某些原因所有这些对象都显示相同的URL,终端打印出当前页面的 URL三次。 我如何才能找到一个应该被传递到新窗口中的网址?
由于ptomato,我找到了解决办法。 设置信号,此功能的工作原理:
...
self.connect("new-window-policy-decision-requested", self.newWin) #requires webkit 1.1.4
...
def newWin(self, view, frame, request, nav_action, policy_decision):
"""
Calls the default browser on external link requests.
"""
functiontoviewurl(request.get_uri())
# According to the documentation: http://webkitgtk.org/reference/webkitgtk/stable/webkitgtk-webkitwebview.html#WebKitWebView-new-window-policy-decision-requested
# call ignore on the policy decision, then return true (that is, we handled it).
policy_decision.ignore()
return True