Прокрутка списка людей в списке Facebook не работает, если курсор мыши не находится на полосе прокрутки

Я хотел бы прокрутить страницу вниз, до максимального конца на странице https://www.facebook.com/friends/requests, но совершенно не понимаю, как это здесь работает.

Когда я прокручиваю сам, мой курсор должен находиться в области запроса на дружбу, чтобы полоса прокрутки была видна здесь, если я сам прокрутил вниз и полоса прокрутки видна, я могу использовать

var element = document.querySelector('.x1p6kkr5'); element.scrollIntoView(); в консоли браузера, чтобы прокрутить его вниз, но если я сам не прокрутил его полностью, это не сработает. Случай, когда это вообще не работает, это когда полоса прокрутки не видна здесь Я получаю это:

VM1363:1 Uncaught TypeError: Cannot read properties of null (reading 'scrollIntoView')
    at <anonymous>:1:60

Интересно, как я могу заставить его прокручиваться вниз без необходимости удерживать курсор мыши на вкладке запроса друзей и заставить его прокручиваться без моей помощи при первой прокрутке?

🤔 А знаете ли вы, что...
С JavaScript можно создавать интерактивные формы и проверять введенные пользователем данные.


93
1

Ответ:

Решено

Если я правильно понимаю, вы хотите прокрутить вниз раздел запроса друзей. Вы можете попробовать это в консоли:

Сначала попробуйте скопировать путь JS вместо использования класса «x1p6kkr5» для поиска элемента.

//element = document.querySelector("..."); Щелкните правой кнопкой мыши тег HTML «Копировать»> «Копировать JS PATH». element.scrollTop = element.scrollHeight;Прокручивает вниз вид

Проблема в том, что если у вас слишком длинный список друзей, он прокручивается только до точки первоначального количества друзей. После того, как остальные запросы друзей загрузятся, вам придется снова выполнить эту строку, или вы можете создать сервер, который слушает изменения element.scrollHeight и выполняет код «прокрутки» при изменении.

const observer = new MutationObserver((mutationsList, observer) => {
const oldHeight = observer.oldHeight || 0;
const newHeight = element.scrollHeight;

if (newHeight !== oldHeight) {
    element.scrollTop = element.scrollHeight;
    observer.oldHeight = newHeight;
    }
});
observer.observe(element, { childList: true, subtree: true });
element.scrollTop = element.scrollHeight;

Имейте в виду, что вам придется каждый раз снова копировать путь JS, потому что Facebook, похоже, меняет имена классов при каждой перезагрузке.