Hedef: Bir YouTube oynatma listesi yüklüyorum, ardından GreaseMonkey click()
s "shuffle playlist" düğmesi.GreaseMonkey + Youtube + .click()
Doğruca benim konsolunda Bu iki satır çalıştırabilir ve mükemmel çalışıyor: Ben GreaseMonkday içine taşımak için çalıştı
var shuffleBtn = document.querySelector(".yt-uix-button.shuffle-playlist");
shuffleBtn.click();
Ancak, artık çalışır. aşağıdaki kodu console.log
'ın çalıştırabilirim - ve (yorumlandı) remove()
eser, ama click()
will değil tetik. Ayrıca, method outlined here'u da denedim, jQuery bitlerini sayardım, ancak şans da yok.
Neyi eksik?
// ==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');
}
}
Biraz test ettim… aslında programlı tıklama GreaseMonkey'de engellenmediği için çalışmalıdır (bunu çok defa yaptım). Düğmenin düzgün bir şekilde başlatılmamış olabileceğini düşündüm, ancak “setTimeout” ile gecikmiş bir uygulamada bile işe yaramadı. – Xufox
Kullanıcı betiği yürütüldüğünde, shuffle düğmesi iki 'click' olay dinleyicisinden birini“ kaybeder ”: [script olmadan iki olay dinleyicisi vardır] (http://i.stack.imgur.com/1vsZF .png), ancak [yalnızca bir olay dinleyicisi _with_ betiği] (http://i.stack.imgur.com/YXgu5.png). – Xufox
Evet, bir 'setTimeout' ile de denedim-- ve '.trigger ('click')' - ve * jQuery ile her şeyi denedim ... – frogg3862