JavaScript-模拟点击鼠标右键
前提是该元素已绑定事件
如果没有事件,右键是系统默认的右键菜单
//获取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);
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
的字符串,包含以下几种鼠标事件:click,
mousedown
,mouseup
,mouseover
,mousemove
,mouseout
。 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) | ? |
快捷登陆