2011-05-11 13 views
2

wx.webkit을 사용하여 사용자 지정 브라우저를 만들려고합니다. 다음 코드는 깔끔하게 작동합니다.wx.webkit - 현재 URL을 얻는 방법 ...?

현재 표시되는 페이지의 현재 URL을 가져오고 싶습니다. GetPageURL() 메서드를 사용하는 것이 도움이되지 않는 것 같습니다. 항상 시작 URL (이 경우 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() 메소드와 간단한 자바 스크립트를 사용하여 URL을 얻을 수 있습니다. self.browser.RunScript ("document.URL")는 현재 URL을 반환합니다. 나는 여전히 직접적인 방법이 있는지 알고 싶다. –

답변

0

대신 wx.html2.WebView.New 위젯을 사용하십시오.

0

get_uri() 메소드가 있습니다. 이런 식으로 사용해야합니다.

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