JavaScript 模拟键盘事件和鼠标事件(比如模拟按下回车等)
2017-03-14 10:04
1081 查看
http://blog.csdn.net/lovelyelfpop/article/details/52471878#
封装好的function大概就是这样:
[b][js] view plain copy[/b]
function fireKeyEvent(el, evtType, keyCode){
var doc = el.ownerDocument,
win = doc.defaultView || doc.parentWindow,
evtObj;
if(doc.createEvent){
if(win.KeyEvent) {
evtObj = doc.createEvent('KeyEvents');
evtObj.initKeyEvent( evtType, true, true, win, false, false, false, false, keyCode, 0 );
}
else {
evtObj = doc.createEvent('UIEvents');
Object.defineProperty(evtObj, 'keyCode', {
get : function() { return this.keyCodeVal; }
});
Object.defineProperty(evtObj, 'which', {
get : function() { return this.keyCodeVal; }
});
evtObj.initUIEvent( evtType, true, true, win, 1 );
evtObj.keyCodeVal = keyCode;
if (evtObj.keyCode !== keyCode) {
console.log("keyCode " + evtObj.keyCode + " 和 (" + evtObj.which + ") 不匹配");
}
}
el.dispatchEvent(evtObj);
}
else if(doc.createEventObject){
evtObj = doc.createEventObject();
evtObj.keyCode = keyCode;
el.fireEvent('on' + evtType, evtObj);
}
}
使用方法: 假设模拟回车
[b][js] view plain copy[/b]
fireKeyEvent(topWin.__activeElement, 'keydown', 13); //第一个参数时html元素
封装好的function大概就是这样:
[b][js] view plain copy[/b]
function fireKeyEvent(el, evtType, keyCode){
var doc = el.ownerDocument,
win = doc.defaultView || doc.parentWindow,
evtObj;
if(doc.createEvent){
if(win.KeyEvent) {
evtObj = doc.createEvent('KeyEvents');
evtObj.initKeyEvent( evtType, true, true, win, false, false, false, false, keyCode, 0 );
}
else {
evtObj = doc.createEvent('UIEvents');
Object.defineProperty(evtObj, 'keyCode', {
get : function() { return this.keyCodeVal; }
});
Object.defineProperty(evtObj, 'which', {
get : function() { return this.keyCodeVal; }
});
evtObj.initUIEvent( evtType, true, true, win, 1 );
evtObj.keyCodeVal = keyCode;
if (evtObj.keyCode !== keyCode) {
console.log("keyCode " + evtObj.keyCode + " 和 (" + evtObj.which + ") 不匹配");
}
}
el.dispatchEvent(evtObj);
}
else if(doc.createEventObject){
evtObj = doc.createEventObject();
evtObj.keyCode = keyCode;
el.fireEvent('on' + evtType, evtObj);
}
}
使用方法: 假设模拟回车
[b][js] view plain copy[/b]
fireKeyEvent(topWin.__activeElement, 'keydown', 13); //第一个参数时html元素
相关文章推荐
- JavaScript 模拟键盘事件和鼠标事件(比如模拟按下回车等)
- 模拟键盘鼠标事件----自己做外挂
- 使用SWT模拟鼠标键盘事件
- C#模拟键盘鼠标事件 SendKeys 的特殊键代码表
- javascript事件列表大全解说,点击事件,双击事件,触发事件,键盘事件,鼠标移...
- Android自动化测试初探(四): 模拟键盘鼠标事件(Socket+Instrumentation实现)
- Android 模拟键盘鼠标事件
- C#模拟键盘鼠标事件
- QTP模拟鼠标和键盘事件方法
- C#模拟键盘鼠标事件 SendKeys 的特殊键代码表
- 使用SWT模拟鼠标键盘事件
- 模拟鼠标键盘事件
- QTP模拟鼠标键盘事件
- javascript屏蔽鼠标、键盘事件
- javascript的鼠标键盘事件
- C#模拟键盘鼠标事件
- 【转】C#模拟键盘鼠标事件
- Android自动化测试初探(五): 再述模拟键盘鼠标事件(adb shell 实现)
- QTP模拟鼠标和键盘事件整理
- C#模拟键盘鼠标事件