Я хотел бы нажать кнопку "Показать еще" на странице пользователей Youtube с помощью Tampermonkey.Также уже исследовал здесь на сайте, но не нашел удовлетворительного ответа на свой вопрос.
Html кнопки:
<button class="yt-uix-button yt-uix-button-size-default yt-uix-button-default load-more-button yt-uix-load-more browse-items-load-more-button" type="button" onclick=";return false;" aria-label="Carregar mais
" data-uix-load-more-href="/browse_ajax?action_continuation=1&continuation=4qmFsgJAEhhVQ2UwSXlLNG50Z2RQVFRqc3hqdnlIUGcaJEVnWjJhV1JsYjNNZ0FEZ0JZQUZxQUhvQk1yZ0JBQSUzRCUzRA%253D%253D" data-uix-load-more-target-id="channels-browse-content-grid"><span class="yt-uix-button-content"> <span class="load-more-loading hid">
<span class="yt-spinner">
<span title="Carregando ícone" class="yt-spinner-img yt-sprite"></span>
Carregando...
</span>
</span>
<span class="load-more-text">
Carregar mais
</span>
</span></button>
Сначала я попробовал этот код:
// ==UserScript==
// @name YouTube
// @namespace http://tampermonkey.net/
// @version 0.1
// @description try to take over the world!
// @author You
// @match https://www.youtube.com/user/*/videos
// @grant none
// @require https://ajax.googleapis.com/ajax/libs/jquery/2.2.2/jquery.min.js
// ==/UserScript==
$(document).ready(
$(function(){
document.getElementsByClassName("yt-uix-button yt-uix-button-size-default yt-uix-button-default load-more-button yt-uix-load-more browse-items-load-more-button")[0].click();
});
);
А также я попробовал вот это:
// ==UserScript==
// @name YouTube
// @namespace http://tampermonkey.net/
// @version 0.1
// @description try to take over the world!
// @author You
// @match https://www.youtube.com/user/*/videos
// @grant none
// @require https://ajax.googleapis.com/ajax/libs/jquery/2.2.2/jquery.min.js
// ==/UserScript==
$(document).ready(
setTimeout(function() {
document.querySelector('#yt-uix-button yt-uix-button-size-default yt-uix-button-default load-more-button yt-uix-load-more browse-items-load-more-button').click()
}, 1000)
Но оба кода, кажется, не работают вообще. Может ли кто-нибудь объяснить мне, как это исправить? Какой код я должен вставить туда? Я ничего не знаю о JS.
По состоянию на 20 февраля 2018 года URL-адреса, с которыми вы совпадаете (https://www.youtube.com/user/*/videos
), на самом деле возвращают HTML-страницы, которые полагаются на бесконечную прокрутку. Там нет кнопки "Показать больше" HTML, как вы упомянули. Это означает:
document.querySelector('#yt-uix-button yt-uix-button-size-default yt-uix-button-default load-more-button yt-uix-load-more browse-items-load-more-button');
вернет null
, и когда вы выполните .click()
, вы'получите TypeError. Очевидно, что это не то, чего вы хотите.
Если вы хотите "Показать больше" видео на странице с помощью Javascript, вам нужно сделать следующее:
document.querySelector("yt-next-continuation").trigger();