2011-05-11 5 views
2

J'essaie de créer un navigateur personnalisé en utilisant wx.webkit. Le code suivant fonctionne proprement.wx.webkit - comment obtenir l'URL actuelle ...?

Je souhaite obtenir l'URL actuelle de la page en cours d'affichage. L'utilisation de la méthode GetPageURL() ne semble pas utile. Ceci affiche toujours l'URL de départ (http://www.google.com dans ce cas). Il ne semble pas être mis à jour.

Comment puis-je obtenir l'URL mise à jour lorsque je navigue d'une page à l'autre ...?

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

J'ai trouvé une méthode moi-même. On peut utiliser la méthode RunScript() de wx.webkit.WebKiCtrl et un simple javascript pour obtenir l'URL. self.browser.RunScript ("document.URL") renvoie l'adresse URL actuelle. J'aimerais quand même savoir s'il existe une méthode directe. –

Répondre

0

Utilisez plutôt un widget wx.html2.WebView.New.

0

Il existe une méthode get_uri(). Vous devez l'utiliser comme ceci

browser = webkit.WebView() 
browser.open("http://example.com") 
print browser.get_main_frame().get_uri() 
Questions connexes