js高级程序设计--事件模拟

本文介绍了一种在不同浏览器环境中模拟鼠标点击事件和键盘事件的方法。通过检测浏览器类型(如Safari、IE等),使用相应的API创建并初始化事件对象,然后触发这些事件以实现自动化操作。适用于前端开发人员进行测试或自动化任务。
var event,event1;
    var btn=document.getElementById("myBtn");
    btn.onclick=function(){
        document.body.style.background="black";
    }
    if(client.browser.safari && client.browser.safari==2 ){
        event=document.createEvent("UIEvent");
        event.initEvent("click",true,true);
        event.view=document.defaultView;
        event.detail=0;
        event.screenX=0;
        event.screenY=0;
        event.clientX=0;
        event.clientY=0;
        event.ctrlKey=false;
        event.altkey=false;
        event.metakey=false;
        event.shiftKey=false;
        event.button=0;
        event.relatedTarget=null;
        btn.dispatchEvent(event);
    } else if(client.browser.ie){
        event=document.createEventObject();
        event.screenX=100;
        event.screenY=0;
        event.clientX=0;
        event.clientY=0;
        event.ctrlkey=false;
        event.altkey=false;
        event.shiftkey=false;
        event.button=0;
        btn.fireEvent("onclick",event);
    } else {
        //创建事件对象
        event=document.createEvent("MouseEvents");
        //初始化事件对象
        event.initMouseEvent("click",true,true,document.defaultView,0,0,0,0,0,false,false,false,false,0,null);
        //触发事件
        btn.dispatchEvent(event);
    }
 
 
    //模拟键盘事件
    var textbox=document.getElementById("myTextbox");
    if(client.browser.firefox){
        event1=document.createEvent("KeyEvents");
        event1.initKeyEvent("keypress",true,true,document.defaultView,false,false,false,false,65,65);
        textbox.dispatchEvent(event1);
    } else if(client.browser.ie){
        event1=document.createEventobject();
        event1.altKey=false;
        event1.ctrlKey=false;
        event1.shiftKey=false;
        event1.keyCode=65;
        textbox.fireEvent("okeypress",event1);
    } else {
        //创建一个通用事件
        event1=document.createEvent("Events");
        event1.initEvent("keypress",true,true);        //event1.initEvent(type,bubbles,cancelable);
        event1.view=document.defaultView;
        event1.altKey=false;
        event1.ctrlKey=false;
        event1.shiftKey=false;
        event1.metaKey=false;
        event1.keyCode=65;
        event1.charCode=65;
        textbox.dispatchEvent(event1);
    }
 

转载于:https://www.cnblogs.com/webFrontDev/archive/2012/11/04/2753484.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值