这个问题在这里已经以一种简单的方式提出了问题:Trigger right click using pure JavaScript但是,没有一个答案是我(以及那个线程的海报)所寻求的。
首先,这个问题与事件无关。我不知道如何听取右键单击事件(这将是'contextemenu'事件)。这是关于模拟右键单击任何DOM元素,只需使用浏览器控制台(在我的情况下为chrome),然后使用JavaScript / DOM操作。
话虽如此,我知道有一个简单的功能可以做同样的事情,除了它触发任何元素的左(“正常”)点击。 例如,着名的......
我发现如果你查看源代码,并以某种方式获得对checkbox元素的引用,或者包含它的“div”,让我们说你得到了ID,所以你创建了一个这样的变量。 ..
myElement = document.getElementById('Id_here');
只需在浏览器控制台中键入一个点击即可模拟点击:
myElement.click();
结果将是:
因此,我们模拟了一个真正的点击,解决了验证码,没有需要鼠标,更重要的是,没有人需要(如果你在脚本上实现这个)
现在的问题非常简单......
像 myElement.rightClick(); 或 myElement.contextClick(); ?
声明
这仅用于研究和知识目的。 是的,我在许多网站上搜索过,但他们总是谈论这个事件,没有什么比我要求的更好。 如果有人能回答这个问题我会很感激,即使答案是“不,你不能”。但是,如果您要说明这一点,请100%确定它是不可能的或合理的。 一如既往,提前谢谢!
答案 0 :(得分:1)
Yap easy:
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');
}