지금까지 RunScript()에서 반환 값을 얻는 유일한 방법은 페이지 제목 해킹을 사용하는 것입니다.
RunScript의 어딘가에서 document.title을 검색하려는 값으로 설정하고 GetCurrentTitle()을 사용하여 파이썬으로 가져 오면 데이터를 검색 한 후에 제목을 재설정 할 수 있습니다.
그래서 self.html는 웹보기를 경우
self.html.RunScript("""
//javascript goes here
// variable we wish to retrieve is called return_value
document.title = return_value
""")
r = self.html.GetCurrentTitle()
당신이 wxEVT_COMMAND_WEB_VIEW_NAVIGATING를 재정 의하여 (로빈 게시 된 링크에서 제안으로) 그것을 할 수있는 웹보기 내에서 그것을 시작하려면 너무 때를 그 맞춤 URL 스키마를받습니다. retrieveata : // data/.... 그것은 url로부터 데이터를 가져오고 당신이 원하는 것과 상관없이 어떤 시점에서 evt.Veto()를 호출하도록합니다. 그런 다음 자바 스크립트 내에서 적절한 URL을 호출하여 원하는 모든 데이터를 전달할 수 있습니다. 아래
완전히 테스트되지 않은 코드 (단지 당신이 할 수있는 방법에 대한 아이디어를 제공하기 위해)
def OnPageNavigation(self, evt):
url = evt.GetUrl()
if url.startswith("retrievedata://data/"):
data = url[len("retrievedata://data/"):]
evt.Veto()
// Do whatever you want with the data
은 또한 당신이이 개 아이디어의 조합을 사용하여 액세스 할 때이 GetPageTitle를 호출하는 단일 URL을 만들 수를 () 페이지를 호출하기 전에 document.title을 설정해야합니다.
감사합니다. 나는 내 애플 리케이션으로 둘 다 일할 수 있습니다. 다행히 wx는 데이터를 곧 반환 할 수있는 공식적인 방법을 원할 것입니다. – Tim