我正在开发一个浏览器扩展程序(google chrome 和 firefox),它使用内容脚本来更改 textarea 值。我正在使用这个脚本:
在谷歌浏览器上我使用这个脚本:
function print(msg, textarea){
textarea.focus();
textarea.click();
textarea.value = '';
for(var i=0; i<msg.length;i++){
var e = document.createEvent('KeyboardEvent');
e.initKeyboardEvent("keypress", true, true, null, false, false, false, false, 0, msg.charCodeAt(i));
textarea.dispatchEvent(e);
textarea.value += msg[i];
}
}
在某些使用 AJAX 的网站上,textarea 的值已正确更新,但由于某些原因,当我提交表单时,会发布旧的 textarea 内容。如果我手动按一个键,问题就解决了。
我不明白问题出在哪里。我用 jQuery 尝试了 $(textarea).keydown().keypress().keyup().change() 或 .blur() 但没有帮助。