目标:我加载一个YouTube播放列表,然后GreaseMonkey click()的“洗牌播放列表”按钮。
我可以在我的控制台中直接运行这两行,它运行得非常完美:
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');
}
}发布于 2016-03-30 01:52:32
我想我明白了:
使用window.addEventListener("load", function(){…})而不是window.onload = function(){…}。
看起来,window已经有了一个onload函数,它初始化洗牌按钮的功能,并且脚本正在重写它。
https://stackoverflow.com/questions/36297949
复制相似问题