【发布时间】:2018-03-29 03:02:57
【问题描述】:
我正在尝试为网站创建网络自动化。我正在模拟点击。通常我会向下面的元素添加一个 ID,然后使用 Chrome 开发者控制台触发一次点击,它总是有效的。
p.s:以下问题已过时。我实际上是在尝试从 web.whatsapp.com 的上下文菜单中单击一个项目
<div id="myapp">button1</div>
<script>
$("#myapp").click();
</script>
或者,如果这不起作用,我使用下面的纯 JavaScript 使用 mousedown 事件,它会顺利运行。
function triggerMouseEvent(node, eventType) {
var clickEvent = document.createEvent('MouseEvents');
clickEvent.initEvent(eventType, true, true);
node.dispatchEvent(clickEvent);
}
var targetNode = document.querySelector("#myapp");
triggerMouseEvent(targetNode, "mousedown");
现在我的问题是:这不适用于通过 jQuery contextMenu 插件生成的菜单。
您可以看到 contextMenu here 的演示,我正在通过开发者控制台测试上述内容。
因此,当您右键单击上下文菜单时,会列出带有 ul 和 li 标记的菜单项列表。我手动将 ID #myapp 添加到菜单之一,并且使用以下代码它也选择正确元素通过开发者控制台。
var targetNode = document.querySelector("#myapp");
targetNode;
但我无法触发对通过上下文菜单生成的菜单项的点击。我为此挣扎了超过 24 小时。我尝试了所有我能想到的 JavaScript 事件,例如 mouseup、mousedown 和 mouseenter。
【问题讨论】:
标签: javascript jquery dom contextmenu