Прокрутка
-
Здравствуйте, на странице во ВК БАС показывает одно количество элементов (ссылок групп), по мере прокрутки страницы вниз количество постоянно увеличивается. Как сделать что-бы ползунок прокрутки передвинулся максимально вниз?
-
@denanotherday
В вк это может длится очень долго.
Но вот пример- Загружаем страницу с лентой новостей.
- Получаем высоту страницы с помощью экшена Выполнить яваскрипт (Какой код выполнить гуглим по запросу высота страницы js, координаты страницы js), в переменную (например 1)
- Начинаем вечный цикл while с условием true, в нем ввод текста - нажатие кнопки page down с ожиданием полной загрузки, по том опять получение высоты страницы, но уже в другую переменную(например 2)
- В конце цикла условие если перменная 1 равна переменной 2 - то действие break, иначе присваиваем переменной 1 значение переменной 2
-
Советую прогрузить страницу с группами в BAS. Отключить инет, тогда у вас будет возможность уловить самый нижний элемент страницы. Потом просто прокручивайте к нему.
-
Спасибо.
-
@olegtut буду знать на будущее.
-
"Получаем высоту страницы с помощью экшена Выполнить яваскрипт (Какой код выполнить гуглим по запросу высота страницы js, координаты страницы js), в переменную (например 1)"
-Насколько понял, можно так это сделать:
Math.max($(document).height(), $(window).height())Но мне не удалось получить значение высоты. Почему-то пустое значение. Я еще слаб в js, тем более в его использовании в BAS.
Понимаю, что где-то делаю глупость. Но не знаю где(( Из-за отсутствия опыта работы с js.
-
$
$(document) это код, который будет работать, только если на странице этого сайта подключен фреймворк jquery.
Вот учебник совсем для новичков https://learn.javascript.ru/
-
Благодарю за подсказку.
Еще вот пишут что такое сработает:
var body = document.body, html = document.documentElement;
var height = Math.max( body.scrollHeight, body.offsetHeight, html.clientHeight, html.scrollHeight, html.offsetHeight );... то есть максимальное число значения Height у пяти элементов вычислить нужно. Причем значения эти находятся в разных "документах".
Это получается нужно:
- сохранить в 2 переменные js код body и html (применять экшон "яваскрипт")
- спарсить величины из документов в переменные
- найти максимальную из величин
Инструментов BAS вроде должно хватить для этого... надеюсь
-
Я не понимаю как в басе должно выглядеть получение величины например document.documentElement.scrollHeight
Как должно выглядеть выражение для переменной?
Ведь в содержимом страницы ее нет. Это как бы величина в браузере.
-
Я не понимаю как в басе должно выглядеть получение величины например document.documentElement.scrollHeight
Как должно выглядеть выражение для переменной?
Ведь в содержимом страницы ее нет. Это как бы величина в браузере.Действие "яваскрипт"
с кодом:window.innerHeight + window.pageYOffset >= Math.max( document.body.scrollHeight, document.documentElement.scrollHeight, document.body.offsetHeight, document.documentElement.offsetHeight, document.body.clientHeight, document.documentElement.clientHeight );
Если действие вернёт
true
, значит окно браузера находится внизу страницы
-
window.innerHeight + window.pageYOffset
Ого, спасибо. Нигде такое не мог найти.
Вчера, что бы хоть как-то работало, сделал так:
Проверял наличие на сайтов элемента подвала, по наиболее распространенным селекторам (>CSS> footer, >CSS> .footer и т.д.). Ну и получал их координаты. В целом - идиотизм конечно. И не на каждом сайте такое сработает.
😅
-
@Fox В чем может быть проблема, если находится бот на первом экране, а действие, которое Вы скинули все равно отдает True?
-
@kremenseo said in Прокрутка:
@Fox В чем может быть проблема, если находится бот на первом экране, а действие, которое Вы скинули все равно отдает True?
На первом экране? Чегось?
-
@Fox имею ввиду, что бот еще не прокручивал страницу и находится в самом её верху
window.innerHeight + window.pageYOffset >= Math.max( document.body.scrollHeight, document.documentElement.scrollHeight, document.body.offsetHeight, document.documentElement.offsetHeight, document.body.clientHeight, document.documentElement.clientHeight );
а вот этот код возвращает True
-
@kremenseo said in Прокрутка:
@Fox имею ввиду, что бот еще не прокручивал страницу и находится в самом её верху
window.innerHeight + window.pageYOffset >= Math.max( document.body.scrollHeight, document.documentElement.scrollHeight, document.body.offsetHeight, document.documentElement.offsetHeight, document.body.clientHeight, document.documentElement.clientHeight );
а вот этот код возвращает True
Этот код возвращает true если размер прокрутки + высота экрана >= высоты страницы. То есть если на странице нету прокрутки он тоже вернёт true
-
@Fox А как быть со страницей, к примеру https://translate.google.com/translate?hl=ru&sl=ru&tl=en&u=https%3A%2F%2Fade.in.ua%2Fdelaem-dengi-na-azhiotazhe-vokrug-bitkoina%2F
мне нужно чтобы он её прокручивал и переводил постепенно, конкретно для этого сайта, не пойму за что зацепиться, чтобы сделать через while
-
@kremenseo said in Прокрутка:
@Fox А как быть со страницей, к примеру https://translate.google.com/translate?hl=ru&sl=ru&tl=en&u=https%3A%2F%2Fade.in.ua%2Fdelaem-dengi-na-azhiotazhe-vokrug-bitkoina%2F
мне нужно чтобы он её прокручивал и переводил постепенно, конкретно для этого сайта, не пойму за что зацепиться, чтобы сделать через while
Страница с переводм находится во фрейме, обращайтесь к нему через действие "Выполнить Javascript На Элементе"