在控制台中模拟调用 onMouseDown

问题描述

页面上有一个 div 元素,单击它会创建一个菜单,其中可以选择显示的元素数量。

菜单:

menu

如何通过控制台调用这个动作(onMouseDown React)? 代码:

code

解决方法

在控制台中,您要获取元素,然后使用调度事件来模拟 mouseoverclick

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)

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...