我创建了一个firefox附加组件,它可以用给定的输入填充from中的几个字段。例如,页面上#2表单的第二个字段是一个文本框,通常可以使用。
document.forms[2][1].value = "XYZ"
我可以在文本框中看到这个值XYZ。但是如果我继续提交表单,无论是通过脚本还是手动,它都会在此文本框中引发错误。在少数情况下,在给出值之后使用click()。
document.forms[2][1].value = "XYZ"
document.forms[2][1].click()
但即使是在几个网站上都失败了。在手动将光标放在文本框中并输入之前,我才会工作。
更新:
function createValueAttribute(formField, attValue){
formField.focus();
formField.setAttribute("value",attValue);
var event = document.createEvent('KeyboardEvent');
event.initKeyEvent("keypress", // typeArg,
true, // canBubbleArg,
true, // cancelableArg,
null, // viewArg, Specifies UIEvent.view. This value may be null.
false, // ctrlKeyArg,
false, // altKeyArg,
false, // shiftKeyArg,
false, // metaKeyArg,
8, // keyCodeArg, 8 for Backspace
0); // charCodeArg);
formField.dispatchEvent(event);
}