您的位置:首页 > Web前端 > JavaScript

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元素
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: