GreaseMonkey + Youtube + .click()
GreaseMonkey + Youtube + .click()
目标:加载 YouTube 播放列表,然后 GreaseMonkey click()
点击 "shuffle playlist" 按钮。
我可以在我的控制台中直接 运行 这两行并且它完美地工作:
var shuffleBtn = document.querySelector(".yt-uix-button.shuffle-playlist");
shuffleBtn.click();
但是,当我尝试将其移至 GreaseMonkday 时,它不再有效。
下面代码中的 console.log
执行 运行-- 并且(注释掉的)remove()
有效,但是 click()
不会触发。我也试过 method outlined here,没有 jQuery 位,但也没有运气。
我错过了什么?
// ==UserScript==
// @name YouTube - Randomize Playlist
// @namespace ytplaylistrandom
// @include https://www.youtube.com/watch?v=yyDUC1LUXSU&list=PLh6vppUwmWEMdp04u-tYABoDmgn9AX12n
// @version 1
// @grant none
// ==/UserScript==
window.onload = function () {
var shuffleBtn = document.querySelector(".yt-uix-button.shuffle-playlist");
if( shuffleBtn ){
console.log('exists');
shuffleBtn.click();
//shuffleBtn.remove();
console.log('end');
}else {
console.log('nobutton');
}
}
我想我明白了:
使用window.addEventListener("load", function(){
…})
代替window.onload = function(){
…}
.
window
似乎已经有一个 onload
函数来初始化随机播放按钮的功能,脚本正在 覆盖 它。
目标:加载 YouTube 播放列表,然后 GreaseMonkey click()
点击 "shuffle playlist" 按钮。
我可以在我的控制台中直接 运行 这两行并且它完美地工作:
var shuffleBtn = document.querySelector(".yt-uix-button.shuffle-playlist");
shuffleBtn.click();
但是,当我尝试将其移至 GreaseMonkday 时,它不再有效。
下面代码中的 console.log
执行 运行-- 并且(注释掉的)remove()
有效,但是 click()
不会触发。我也试过 method outlined here,没有 jQuery 位,但也没有运气。
我错过了什么?
// ==UserScript==
// @name YouTube - Randomize Playlist
// @namespace ytplaylistrandom
// @include https://www.youtube.com/watch?v=yyDUC1LUXSU&list=PLh6vppUwmWEMdp04u-tYABoDmgn9AX12n
// @version 1
// @grant none
// ==/UserScript==
window.onload = function () {
var shuffleBtn = document.querySelector(".yt-uix-button.shuffle-playlist");
if( shuffleBtn ){
console.log('exists');
shuffleBtn.click();
//shuffleBtn.remove();
console.log('end');
}else {
console.log('nobutton');
}
}
我想我明白了:
使用window.addEventListener("load", function(){
…})
代替window.onload = function(){
…}
.
window
似乎已经有一个 onload
函数来初始化随机播放按钮的功能,脚本正在 覆盖 它。