2016-06-19 26 views
2

Ich möchte klicken Sie auf "Zeige mehr" -Taste auf Youtube-Benutzer-Seite mit Tampermonkey.Auch schon hier auf der Website recherchiert aber keine befriedigende Antwort auf meine gefunden Fall.Userscript klicken Sie auf "Zeige mehr ..." Schaltfläche auf YouTube mit TamperMonkey

Html der Tasten:

<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> 

ich zum ersten Mal diesen Code versucht:

// ==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(); 
}); 
); 

Und ich habe auch versucht, dies:

// ==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) 

Aber beide Codes scheint nicht zu arbeiten alle. Könnte mir jemand erklären, wie ich das beheben kann? Welchen Code muss ich dort setzen? Ich weiß nichts über JS.

Antwort

0

Ab dem 20. Februar 2018 geben die URLs, mit denen Sie übereinstimmen (https://www.youtube.com/user/*/videos), HTML-Seiten zurück, die auf indefinitem Scrollen basieren. Es gibt keine "Show More" HTML-Schaltfläche, wie Sie erwähnt haben. Das bedeutet:

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 zurückkehren wird, und wenn Sie eine .click() ausführen müssen Sie nur eine Typeerror erhalten. Klar, nicht was du willst.

Wenn Sie wollen, um Videos auf der Seite mit Javascript „Mehr anzeigen“, haben Sie diese stattdessen tun:

document.querySelector("yt-next-continuation").trigger();