用纯Javascript触发右键单击
我怎样才能手动触发一个右键点击使用JavaScript?
我可以用jQuery做到这一点,但在这种情况下,我只能使用纯Javascript。
使用CustomEvent
构造函数创build一个事件,或者(当它不被支持时),使用document.createEvent
作为参数string“HTMLEvents”创build一个事件(因为你要创build一个click
事件)。 然后,使用initEvent
方法创build一个click
事件。
最后,使用dispatchEvent
方法来触发事件。 如果您使用IE,则必须使用fireEvent
方法。
如果要触发右键点击事件,请使用下面的代码:
var element = document.getElementById('yourElement'); if (window.CustomEvent) { element.dispatchEvent(new CustomEvent('contextmenu')); } else if (document.createEvent) { var ev = document.createEvent('HTMLEvents'); ev.initEvent('contextmenu', true, false); element.dispatchEvent(ev); } else { // Internet Explorer element.fireEvent('oncontextmenu'); }
以Rob W为例,我还没有尝试过,但是,您需要制作事件对象并在事件发生时传递它。 右键单击传递event.button = 2;
var element = document.getElementById("yourElement"), ev; if(document.createEvent ) { ev = document.createEvent("MouseEvents"); ev.initMouseEvent("click", true, false, window,0,0,0,0,0,false,false,false,false,2,null); element.dispatchEvent(ev); } else { ev = document.createEventObject(); ev.button = 2; element.fireEvent('onclick', ev); }
根据mdn initMouseEvent更新。 祝你好运 :)