js中模拟keyboard输入在chrome和safari上无效,求达人指点
因测试需要在浏览器中制造事件模拟效果。
代码如下:
function d(element, type, key){
var e = document.createEvent("KeyboardEvents");//KeyboardEvent同样无效,顺便求两者差别的解释
e.initKeyboardEvent(type, true, true, window, key);
element.dispatchEvent(e);
}
var t = document.getElementById("input_test");
t.focus();
d(t, "keydown", "U+0053");
d(t, "keyup", "U+0053");
d(t, "keydown", "U+0049");
d(t, "keyup", "U+0049");
从w3c的文档中查知,目前最新的Document Object Model Events3.0版本中已经定义。