gpt4 book ai didi

javascript - Greasemonkey - 集成滚动和鼠标点击操作

转载 作者:行者123 更新时间:2023-12-03 01:07:12 25 4
gpt4 key购买 nike

我正在玩游戏的页面上有很多链接。

要求是滚动到链接并单击它。我已经成功点击它了。

function clickLinkWithText () {
var links = $('a[href*="xyz.com"]');
var randomNum = Math.floor(Math.random()*links.length);
var targetLink = links.get(randomNum);
triggerMouseEvent (targetLink, "click");
}

但首先,如何滚动到该元素,然后单击它。我应该在这里更改什么?

function scrollToElement() {    
window.setTimeout("window.scrollTo(0, document.body.offsetHeight);",
1000);
};

window.addEventListener('mouseover',function() {
scrollToElement()
},true);

最佳答案

在大多数浏览器中,您可以通过调用 scrollIntoView() 滚动到某个元素。然后,您可以设置一个小的超时(以便浏览器有时间滚动到该元素),之后您可以单击该元素。例如,以下用户脚本将滚动到您的用户名并单击它:

// ==UserScript==
// @name scroll-click
// @namespace CertainPerformance
// @version 1
// @match https://stackoverflow.com/questions/52341101/greasemonkey-integrating-scroll-and-mouse-click-action
// @grant none
// ==/UserScript==

const a = document.querySelector('a[href="/users/1089173/curiousdev"]');

function scrollToElement() {
a.scrollIntoView();
setTimeout(() => {
a.click();
}, 1000);
};

window.addEventListener('mouseover', scrollToElement);

请注意,不需要 jQuery,并且您可以直接将函数名称传递给 addEventListener,而不是将其包装在另一个匿名函数中。

此外,尽量避免将字符串传递给 setTimeout - 这与 eval 基本相同。最好传递一个实际的函数。

关于javascript - Greasemonkey - 集成滚动和鼠标点击操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52341101/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com