用户单击"显示更多..." YouTube上的按钮使用TamperMonkey

时间:2016-06-19 20:02:37

标签: javascript jquery greasemonkey userscripts tampermonkey

我想点击"显示更多" Youtube用户页面上的按钮使用Tampermonkey.Also已经在网站上进行过研究,但没有找到令人满意的答案。

按钮的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一无所知。

1 个答案:

答案 0 :(得分:0)

自2018年2月20日起,您与(https://www.youtube.com/user/*/videos)匹配的网址实际上会返回依赖无限滚动的HTML网页。没有&#34;显示更多&#34;你提到的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。显然,不是你想要的。

如果您想要&#34;显示更多&#34;使用Javascript在页面上显示视频,您必须这样做:

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