我正在使用pyjd / hulahop / pyxpcom来加载带有输入字段的HTML文档,这个输入字段与“onchange = ....”绑定到一些JS函数进行一些AJAX调用。
html看起来像这样:
...
<input name="inp" type="text" onchange="checkInput()"></input>
...
我可以使用以下代码轻松找到并修改输入字段:
import pyjd
pyjd.setup(URL)
bw = pyjd.hula.wv
doc = bw.getDomDocument()
inp = doc.getElementsByName("inp").item(0)
inp.value = "somestring"
然而,这并没有触发“onchange”处理程序,似乎我有手动选择进入/退出输入字段来执行此操作。 从我所看到的pyxpcom接口非常接近C ++接口,这就是为什么我在那里阅读了一堆C ++片段,我尝试了几个使用FocusManager接口的东西,发出.focus()和.blur()关于“inp”元素的事件,但到目前为止没有成功。
有人知道这应该是怎么回事吗? 它甚至可能吗? 有没有办法直接调用附加的onchange处理程序?
P.S。:对于睡衣标签,我不允许创建'pyjd'标签: - )
答案 0 :(得分:1)
更改事件通常在字段失去焦点或按下Enter键时发送,并且预计脚本化更改不会触发它们,因此如果您需要发生这种情况,最好触发您自己的更改事件。有一些sample code for dispatching a click event;更改事件的过程类似,但在这种情况下,事件类型是Events而不是MouseEvents,因此您需要调用InitEvent。