В большинстве браузеров вы можете прокрутить элемент, вызвав на нем scrollIntoView()
. Затем вы можете установить небольшой тайм-аут (чтобы браузер успел прокрутить элемент), после чего вы можете нажать на элемент. Например, следующий скрипт пользователя прокручивает до вашего имени пользователя и щелкает по нему:
// ==UserScript==
// @name scroll-click
// @namespace CertainPerformance
// @version 1
// @match /10967270/greasemonkey-obedinenie-deistvii-prokrutki-i-schelchka-myshi
// @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
. Лучше передать фактическую функцию.