2011-05-11 187 views
2

我想使用wx.webkit构建自定义浏览器。以下代码干净地工作。wx.webkit - 如何获取当前网址...?

我想获取当前正在显示的页面的当前URL。使用GetPageURL()方法似乎没有帮助。这始终显示起始网址(在这种情况下为http://www.google.com)。它似乎并没有得到更新。

当我从一页导航到另一页时,如何获取更新的URL ...?

import wx 
import wx.webkit 

class wxBrowser(wx.Frame): 
    def __init__(self, parent, id, title): 
    wx.Frame.__init__(self, parent, id, title, size=(800, 625)) 

    self.browser = wx.webkit.WebKitCtrl(self,-1) 
    self.browser.LoadURL('http://www.google.com') 
    self.browser.Bind(wx.EVT_KEY_DOWN, self.PrintURL) 
    self.Centre() 
    self.Show(True) 

    def PrintURL(self, event): 
    # show current URL on Cmd P 
    if event.CmdDown() and event.GetKeyCode() == 80: 
     print self.browser.GetPageURL() 

if __name__ == '__main__': 
    app = wx.App() 
    wxBrowser(None, -1, 'My Browser') 
    app.MainLoop() 
+0

我自己找到了一种方法。可以使用wx.webkit.WebKiCtrl的RunScript()方法和一个简单的JavaScript来获取URL。 self.browser.RunScript(“document.URL”)返回当前的URL。我仍然想知道是否有任何直接的方法。 – 2011-05-11 22:28:59

回答

0

改为使用wx.html2.WebView.New小部件。

0

有一个get_uri()方法。你必须这样使用它

browser = webkit.WebView() 
browser.open("http://example.com") 
print browser.get_main_frame().get_uri() 
相关问题