如何以编程方式从 wx.html2.WebView wxpython 对象填充文本框?
How to programmatically fill a textBox from wx.html2.WebView wxpython object?
[问题]
我想以编程方式在 wx.html2.WebView wxpython 对象中编写一些文本。
[代码]
import wx
import wx.html2
app = wx.App(False)
frame = wx.Frame(None, -1, 'test')
browser = wx.html2.WebView.New(frame)
browser.LoadURL("https://www.python.org/")
browser.RunScript("document.getElementById('id-search-field').value = test")
frame.Show()
app.MainLoop()
[当前输出]:
textBox
内没有任何内容
[期望的输出]:
文本应写在文本框内
您需要注册一个事件处理程序,以便在页面加载后调用 browser.RunScript
。否则,RunScript
将无效,因为调用该函数时页面尚未准备好。
除此之外,test
应该被引用以表示 javascript 中的字符串:
import wx
import wx.html2
app = wx.App(False)
frame = wx.Frame(None, -1, 'test')
browser = wx.html2.WebView.New(frame)
def loaded(e):
if e.GetURL() == 'about:blank': # Skip if it's a blank page.
return
browser.RunScript("document.getElementById('id-search-field').value = 'test'")
browser.Bind(wx.html2.EVT_WEBVIEW_LOADED, loaded)
browser.LoadURL("https://www.python.org/")
frame.Show()
app.MainLoop()
[问题] 我想以编程方式在 wx.html2.WebView wxpython 对象中编写一些文本。
[代码]
import wx
import wx.html2
app = wx.App(False)
frame = wx.Frame(None, -1, 'test')
browser = wx.html2.WebView.New(frame)
browser.LoadURL("https://www.python.org/")
browser.RunScript("document.getElementById('id-search-field').value = test")
frame.Show()
app.MainLoop()
[当前输出]: textBox
内没有任何内容[期望的输出]: 文本应写在文本框内
您需要注册一个事件处理程序,以便在页面加载后调用 browser.RunScript
。否则,RunScript
将无效,因为调用该函数时页面尚未准备好。
除此之外,test
应该被引用以表示 javascript 中的字符串:
import wx
import wx.html2
app = wx.App(False)
frame = wx.Frame(None, -1, 'test')
browser = wx.html2.WebView.New(frame)
def loaded(e):
if e.GetURL() == 'about:blank': # Skip if it's a blank page.
return
browser.RunScript("document.getElementById('id-search-field').value = 'test'")
browser.Bind(wx.html2.EVT_WEBVIEW_LOADED, loaded)
browser.LoadURL("https://www.python.org/")
frame.Show()
app.MainLoop()