我正在尝试用javascript填写表单,并且还要模拟它,因为我通过触发所有类型的事件来键入它。
这是我到目前为止所做的:
domElement.value = "123123";
fireKeyEvent(domElement);
function fireKeyEvent(ele) {
fireSpecificKeyEvent(ele,"keyup");
fireSpecificKeyEvent(ele,"keydown");
fireSpecificKeyEvent(ele,"keypress");
}
function fireSpecificKeyEvent(ele, eventName) {
try {
var evObj = document.createEvent('UIEvents');
evObj.initUIEvent( eventName, true, true, window, 1 );
console.log("eleid:"+ele.getAttribute("id"));
console.log("eleValue:"+ele.getAttribute("value"));
ele.dispatchEvent(evObj);
//evObj.keyCode = 93;
ele.dispatchEvent(evObj);
}catch(e) {
console.log(e);
}
}
大部分时间都可以正常工作,但有时它会在某些输入文本框中失败。 keyup , keydown , keydown
足以模拟各种事件。
createEvent('UIEvents')
这是正确的实现,还是应该使用keyEvent或KeyBoardEvent。
我正在使用chrome BTW。在我使用element.value
编辑:
这些事件似乎没有填写表格并通过以下链接提交:
缺少什么。