youtube 重复一个班轮

youtube repeat oneliner

我正在尝试制作一个 oneliner 来重复播放视频。

我开始寻找触发另一轮的重播按钮:

$("[title='Replay']")[0].click();

视频为运行时在后台循环的自调用函数。

rpt=function(){setTimeout(function(){alert("blarg");rpt()},5000)}

将这两件事放在一起并添加一点点绒毛: $ = jQuery 初始化闪亮的 $()-syntax,最后 rpt(); 使事情顺利进行:

$=jQuery,rpt=function(){setTimeout(function(){$("[title='Replay']")[0].click(),rpt()},100)};rpt();

唉,部分有效但不是全部

我注意到如果我在视频结束前输入最后一行,控制台会打印一条错误消息;由于尚未找到该按钮,因此对未定义的 .click() 的调用无效。

该函数不应该仍然在后台循环并在以后的调用中触发,只要重播按钮在那里供 jQuery 抓取吗?

我正在使用 chrome 44.0.2403.130 和 jQuery: 1.10.1

添加验证以确保有可用的重播元素。

使用 setInterval() 而不是 setTimeout()

默认情况下(除非您使用其他有冲突的库),jQuery 在初始化时分配给 $ 变量。

setInterval(function(){if($("[title='Replay']").length)$("[title='Replay']").trigger('click');},100);

一行重复+标题中附加的重复次数:

var title=$('#eow-title').innerHTML; var replaysN = 1; setInterval(function(){if($('.ytp-play-button').title == 'Replay') {$('.ytp-play-button').click();$('#eow-title').innerHTML = title+' (x'+replaysN+')';replaysN++;} }, 1000);

..制作此 post 几周后,youtube 中出现了一项新功能 :D 在视频 right-click 之后 -> 循环 所以每一个自定义都是无用的:)