Simulating a mousedown, click, mouseup sequence in Tampermonkey?

后端 未结 3 1666
慢半拍i
慢半拍i 2020-11-27 13:09

I would like to simulate a whole click not just

document.getElementsByClassName()[0].click();

How do I do that? Search results all seem t

3条回答
  •  甜味超标
    2020-11-27 13:37

    I improved Brock's code a little after it worked as expected for me.

    Definition:

    function simulateMouseClick(targetNode) {
        function triggerMouseEvent(targetNode, eventType) {
            var clickEvent = document.createEvent('MouseEvents');
            clickEvent.initEvent(eventType, true, true);
            targetNode.dispatchEvent(clickEvent);
        }
        ["mouseover", "mousedown", "mouseup", "click"].forEach(function(eventType) { 
            triggerMouseEvent(targetNode, eventType);
        });
    }
    

    Calling examples:

    simulateMouseClick(document);
    
    simulateMouseClick(document.querySelector("a[href*='stackoverflow']"));
    

提交回复
热议问题