var myEvt = document.createEvent('MouseEvents');
myEvt.initMouseEvent(
'click' // event type
,true // can bubble?
,true // cancelable?
,window // the event's abstract view (should always be window)
,1 // mouse click count (or event "detail")
,100 // event's screen x coordinate
,200 // event's screen y coordinate
,100 // event's client x coordinate
,200 // event's client y coordinate
,false // whether or not CTRL was pressed during event
,false // whether or not ALT was pressed during event
,false // whether or not SHIFT was pressed during event
,false // whether or not the meta key was pressed during event
,1 // indicates which button (if any) caused the mouse event (1 = primary button)
,null // relatedTarget (only applicable for mouseover/mouseout events)
);
5条答案
按热度按时间hts6caw31#
我试着这样做,事情没有完全工作的原因是上下文菜单实际上被绑定到oncontextmenu事件。
btqmn9zl2#
为了更好地衡量,这里有一点关于参数的文档:
qxsslcnc3#
问得好!
我做了一些研究,似乎可以通过将
button
或which
属性设置为2(在此处记录)来触发is shown here之类的鼠标事件,并使其成为右键单击。也许这段代码可以工作:
bkhjykvo4#
如果你不关心上下文菜单在哪里启动,这里是一个更正确的版本
如果你这样做,我们可能不得不使用前一个,修复它在IE中的行为,并适当地填充screenX,screenY,clientX,clientY等
kupeojn65#
我在firefox和chrome中尝试了这个方法,但是调度contextmenu事件并不能使浏览器打开上下文菜单。事件被触发是因为我对oncontextmenu的回调被触发了,但是上下文菜单仍然没有。有人有什么想法吗,因为我使用了上面的所有代码示例?