JavaScript Dom 右键点击功能

3
这个问题在这里已经以简单的方式提出:使用纯JavaScript触发右键单击,然而,那里面没有一个答案是我(以及显然是那个帖子的发布者)所寻求的。
首先,这个问题不是关于事件的。我不想知道如何监听右键单击事件(那将是'contextemenu'事件)。这是关于通过使用浏览器控制台(在我的情况下是Chrome),因此是JavaScript / DOM操作来模拟对任何DOM元素的右键单击。
话虽如此,我知道有一个简单的函数可以做相同的事情,只是它会触发对任何元素的左键(“正常”)单击。 例如,著名的...

I'm not a robot captcha

我发现如果你查看源代码,并以某种方式获取到复选框元素或包含它的“div”的引用,比如获取ID,那么你就创建一个像这样的变量...

myElement = document.getElementById('Id_here');

您可以通过在浏览器控制台中输入以下内容来模拟点击:

myElement.click();

结果将会是:

captcha solved!

因此,我们模拟了真正的点击,解决了验证码,不需要鼠标,更重要的是,不需要人类(如果您在脚本上实现这一点)


现在的问题非常简单...

有没有像右键点击这样的东西?

例如myElement.rightClick();myElement.contextClick();


免责声明

这只是为了研究和知识目的而已。 是的,我在许多网站上搜索过,但它们总是谈论事件,没有像我所问的那样的内容。 如果有人能回答这个问题,即使答案是“不行”,我也会非常感激。但是,请确保100%确定它是不可能或不可行的。 像往常一样,提前致谢!


如果jQuery是一个选项,你可以参考这篇帖子上的答案。 - Matthew
1个回答

2

很简单:

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');
}

这段代码对我来说不起作用。 - archerLj

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接