怎样用js模拟键盘事件

JavaScript017

怎样用js模拟键盘事件,第1张

主动触发事件是一个经常会用到的技巧,它很重要。它和事件绑定一样存在着浏览器兼容性问题。传统浏览器(IE8-)使用createEventObject来创建事件对象,用fireEvent这个方法来触发事件;现代浏览器用createEvent来创建对象,用dspatchEvent来触发事件。

//获取浏览器版本

var isIE=navigator.userAgent.match(/MSIE (d)/i)

isIE=isIE?isIE[1]:undefined

//事件函数

function onclick(e){

e=eevent

alert(e.msg表酱紫啦,人家羞涩啦~)

}

//给document绑定一个点击事件

isIElt9

//传统浏览器使用attachEvent

?document.attachEvent(onclick,onclick)

//现代浏览器使用addEventListner

:document.addEventListener(click,onclick,false)

//触发自定义事件

if(isIElt9){

//传统浏览器

//创建对象

var event=document.createEventObject()

//给事件对象添加属性

event.msg=我是fireEvent触发的

//触发事件

document.fireEvent(onclick,event)

}else{

//现代浏览器

//创建事件对象

var e=document.createEvent(MouseEvents)

//初始化事件对象

e.initMouseEvent(click),

//给事件对象添加属性

e.msg=我是despatchEvent触发的

//触发事件

document.dispatchEvent(e)

}

2021-09-04

虽然MDN上说 charCode 和 keyCode 已废弃,但是 KeyboardEventInit 中不加这2个配置,这个事件根本就触发不了

可以用wscript.shell的sendkeys方法来发送模拟键盘

但一般来说以浏览器的安全级别,像wscript.shell这样的对象基本是用不上的(除非你的是HTA)

所以可以考虑像asp之类的……