2016-06-19 5 views
2

Я хотел бы нажать кнопку «показать больше» на странице пользователей Youtube, используя Tampermonkey. Также уже изученный здесь на сайте, но не нашел удовлетворительного ответа на мой дело.Скриншот страницы «Показать больше ...» на 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&amp;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.

ответ

0

По состоянию на 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();