如何实现键盘事件模拟操作?

更新于
2026-09-29 14:27:09
1阅读来源:SEO问题
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计185个文字,预计阅读时间需要1分钟。

如何实现键盘事件模拟操作?

键盘事件模拟:使用`@param el 页面元素`,`@param evtType 事件类型`(keydown, keyup),`@param keyCode 键码值`。函数`fireKeyEvent(el, evtType, keyCode)`模拟键盘事件。

键盘事件模拟

/** * 键盘事件模拟 * @param el 页面元素 * @param evtType 事件类型 keydown,keyup * @param keyCode 键码值 */ 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); } }

如何实现键盘事件模拟操作?

本文共计185个文字,预计阅读时间需要1分钟。

如何实现键盘事件模拟操作?

键盘事件模拟:使用`@param el 页面元素`,`@param evtType 事件类型`(keydown, keyup),`@param keyCode 键码值`。函数`fireKeyEvent(el, evtType, keyCode)`模拟键盘事件。

键盘事件模拟

/** * 键盘事件模拟 * @param el 页面元素 * @param evtType 事件类型 keydown,keyup * @param keyCode 键码值 */ 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); } }

如何实现键盘事件模拟操作?