1

我正在使用 pyjd/hulahop/pyxpcom 加载带有输入字段的 HTML 文档,该输入字段与“onchange = ....”绑定到一些执行 AJAX 调用的 JS 函数。

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 处理程序?

PS:对不起睡衣标签,我不允许创建'pyjd'标签:-)

4

1 回答 1

1

更改事件通常在字段失去焦点或按下 Enter 键时发送,并且预计脚本更改不会触发它们,因此如果您需要发生这种情况,最好触发您自己的更改事件。有一些用于调度点击事件的示例代码;更改事件的过程类似,但在这种情况下,事件类型是事件而不是 MouseEvents,因此您需要调用 InitEvent。

于 2011-03-30T20:46:27.527 回答