javascript - YouTube视频更改上的Javascript

标签 javascript youtube

好的,我是一名从事贸易的SQL程序员,但是我试图找出一个(应该是)简单的lublessmonkey javascript,从此处找到的许多其他示例中将它们拼凑在一起。

基本上,我想对照一系列“良好”用户检查当前视频用户。如果在列表中找到它们,则没问题;如果不是,则将页面重定向回youtube.com。我的脚本在第一个视频播放中起作用,但是当通过链接选择另一个视频时,似乎未加载文档对象,或者getElementByClassName找不到任何内容并返回“未定义”。

到目前为止,这是完整的GreaseMonkey脚本:

// ==UserScript==
// @name        YouTube Limit To Users
// @namespace   http://userscripts.org/users/23652
// @include     https://www.youtube.com/watch
// @version     1
// @grant       GM_getValue
// @grant       GM_setValue
// ==/UserScript==

var goodYoutubers=["Sqaishey Quack", "Graser10", "Good Mythical Morning"]; 

window.onload = DoCheckForUser();

function youtubePageChange()
{
    DoCheckForUser();
    $('body').on('transitionend', function(event)
    {
    if (event.target.id != 'progress') return false;
    DoCheckForUser();
    });
}

$(youtubePageChange);

function DoCheckForUser () {
  var y = document.getElementsByClassName('yt-user-info');
  var aNode = y[0];  //<<< this goes "undefined"
  var currentUser = aNode.textContent.trim();
  alert(currentUser);

  var indexUser = goodYoutubers.indexOf(currentUser);
  if (indexUser < 0)
    {
      alert(currentUser + " is NOT an approved YouTuber!");
      window.location = "http://www.youtube.com";
    }
  else
    {
      alert(currentUser + " is an approved YouTuber!");
    }
}

最佳答案

在后台脚本中:

window.addEventListener("spfdone", process); // old youtube design
window.addEventListener("yt-navigate-start", process); // new youtube design
document.addEventListener("DOMContentLoaded", process); // one-time early processing
window.addEventListener("load", process); // one-time late postprocessing

关于javascript - YouTube视频更改上的Javascript,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39801969/

相关文章:

html - 使用 Bootstrap 嵌入 youtube 边缘的黑线

c# - YouTube API v3 检查视频处理状态

json - 哪个 url 用于从 api 3.0 上的用户获取 youtube 上传视频的 json 数据

javascript - 所选选项的值与初始值的总和

javascript - css 不是 AngularJS 中现有元素的函数

javascript - 将 spine.js 与 haml 一起使用

python - tree.xpath() 使用 lxml 库在 Webscraping 中返回空列表

youtube - 如何通过 api 获取 youtube 推荐视频?

javascript - Angular : Error trying to diff '[object Object]' . 只允许数组和迭代

javascript - D3 : Adding second Y-axis, 将 x 轴刻度限制为仅 2