问题描述
页面上有一个 div 元素,单击它会创建一个菜单,其中可以选择显示的元素数量。
菜单:
如何通过控制台调用这个动作(onMouseDown React)? 代码:
解决方法
在控制台中,您要获取元素,然后使用调度事件来模拟 mouseover
或 click
var div = document.querySelector("#myDiv");
var myEventToDispatch = new MouseEvent("click"); //or "mousedown",whichever you need
div.dispatchEvent(myEventToDispatch);
控制台中的这三行代码应该可以解决问题。 结帐:https://developer.mozilla.org/en-US/docs/Web/API/MouseEvent 了解更多选择
,找到了一个解决方案,在实践中有效。站点上的菜单实现由几个嵌套的 div 和一个输入组成。这些元素都没有响应 click() 函数。下面的解决方案解决了我的问题以及我需要的后续步骤。
<pre><code>
var MENU = IFrame.contentDocument.getElementsByClassName("class box menu")[0]; // getElementsById,getElementsByTag[0] ....
MENU = MENU.getElementsByTagName("div");
var MaxList = MENU[1].getElementsByTagName("input")[0];
if(MaxList != undefined)
{
if(MENU[0].textContent != "100 items")
{
// focus menu
MaxList.focus();
var e = new KeyboardEvent(
"keydown",{
bubbles : true,cancelable : true,key : "ArrowDown",char : "ArrowDown",shiftKey : true
}
);
// scroll down the list
MaxList.dispatchEvent(e);
MaxList.dispatchEvent(e);
MaxList.dispatchEvent(e);
// choice
e = new KeyboardEvent(
"keydown",key : "Enter",char : "Enter",shiftKey : true
}
);
MaxList.dispatchEvent(e);
}
}
</code></pre>
VKomyak (Volt_Nerd)