如何在 html 表单输入元素上模拟事件(焦点和模糊除外)



>Html 有许多事件类型。我正在尝试在 .hta 中使用 JavaScript 代码模拟登录。我在文本输入元素上尝试以下内容:

user.focus();
user.value = 'JohnDoe';
user.blur();
button.click();

然而,页面响应就像我在没有输入用户名的情况下单击了按钮一样。我怀疑在元素上注册了一个事件处理程序,当我使用脚本执行此操作时,该元素不会触发。我怎么做才能确定失败的原因并对其进行修改?如何在元素上模拟其他事件类型?

我在这里找到了答案:如何在JavaScript中触发事件?

这是食谱:

function fireevent(type, ele)
{
    var event = win.document.createEvent("HTMLEvents");
    event.initEvent(type, true, true);
    ele.dispatchEvent(event);
}

其中 win 是有问题的窗口。 fireevent('change', user) 在文本输入元素用户上触发一个 Change 事件,这就是我需要做的。现在它:)工作

请注意,尽管创建事件现已弃用。在IE10上,这是我与.hta一起使用的IE10,它工作得很好。

最新更新