Javascript Dom 右键单击​​功能

Javascript Dom Right Click Function

这个问题已经在这里以简单的方式提出:Trigger right click using pure JavaScript,但是,none 的答案是我(显然是该线程的张贴者)所寻求的。


首先,这个问题不是关于事件的。我对知道如何收听右键单击事件(那将是 'contextemenu' 事件)不感兴趣。这是关于模拟右键单击任何 DOM 元素,只需使用浏览器控制台(chrome,在我的例子中),因此 JavaScript/DOM 操作。


话虽如此,我知道有一个简单的函数可以做同样的事情,除了它会触发左键 ("normal") 单击任何元素。 比如著名的...

我发现,如果您查看源代码,并以某种方式获得对复选框元素或包含它的 "div" 的引用,假设您获得了 ID,那么您创建了一个这样的变量...

myElement = document.getElementById('Id_here');

您只需在浏览器控制台中输入以下内容即可模拟点击:

myElement.click();

结果将是:

所以,我们模拟了一次真实的点击,解决了验证码,不需要鼠标,更重要的是,不需要人工(如果你在脚本上实现它)


现在的问题很简单...

有没有像我这样但需要右键单击的东西?

类似于 myElement.rightClick();myElement.contextClick();?


免责声明

这仅用于研究和知识目的。 是的,我在很多网站上搜索过,但他们总是谈论事件,跟我要求的完全不同。 如果有人能回答这个问题,我将不胜感激,即使答案是 "No, you can't "。但是,如果您要声明,请 100% 确定这是不可能的或似是而非的。 一如既往,提前致谢!

很简单:

var element = document.getElementById('Id_here');
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');
}