JavaScript-模拟点击鼠标右键

      2022年01月25日 星期二 20:05:02     JavaScript      JavaScript   js   事件    

前提是该元素已绑定事件
如果没有事件,右键是系统默认的右键菜单

//获取ele的位置
var yll_x = ele.getBoundingClientRect().left+18; //+ 是我为了更精确点击中元素
var yll_y = ele.getBoundingClientRect().top+10;
var evObj = document.createEvent(‘MouseEvents’);
evObj.initMouseEvent(‘mousedown’,true,true,window,1,yll_x,yll_y,yll_x,yll_y,false,false,false,false,2,null);//模拟右键元素
ele.dispatchEvent(evObj);
[dangerbox title=”不要再用此方法,已过时“]
使用特定的事件构造器来替代它,像 MouseEvent()创建并发送事件 页面里有更多的使用信息。
[/dangerbox]

语法

event.initMouseEvent(type, canBubble, cancelable, view,
                     detail, screenX, screenY, clientX, clientY,
                     ctrlKey, altKey, shiftKey, metaKey,
                     button, relatedTarget);

形参

type
设置事件类型type 的字符串,包含以下几种鼠标事件:clickmousedownmouseupmouseovermousemovemouseout
canBubble
是否可以冒泡。取值集合见Event.bubbles
cancelable
是否可以阻止事件默认行为。取值集合见Event.cancelable
view
事件的AbstractView对象引用,这里其实指向window 对象。取值集合见 UIEvent.view
detail
事件的鼠标点击数量。取值集合见Event.detail (en-US)
screenX
事件的屏幕的x坐标。取值集合见MouseEvent.screenX
screenY
事件的屏幕的y坐标。取值集合见MouseEvent.screenY
clientX
事件的客户端x坐标。取值集合见MouseEvent.clientX
clientY
事件的客户端y坐标。取值集合见MouseEvent.clientY
ctrlKey
事件发生时 control 键是否被按下。取值集合见MouseEvent.ctrlKey
altKey
事件发生时 alt 键是否被按下。取值集合见MouseEvent.altKey
shiftKey
事件发生时 shift 键是否被按下。取值集合见MouseEvent.shiftKey
metaKey
事件发生时 meta 键是否被按下。取值集合见MouseEvent.metaKey
button
鼠标按键值 button
relatedTarget
事件的相关对象。只在某些事件类型有用 (例如 mouseover ?和 mouseout)。其它的传null。

 

浏览器兼容性:

Feature Chrome Firefox (Gecko) Internet Explorer Opera Safari
Basic support (Yes) (Yes) ? (Yes) ?

暂无评论

发表评论