纯小白入不了门,求带进坑。控制台能运行,存成脚本就...
// ==UserScript==// @name New Userscript
// @namespace http://tampermonkey.net/
// @version 0.1
// @descriptiontry to take over the world!
// @author You
// @match http://eel2.youmoo.cn/*
// @icon https://www.google.com/s2/favicons?domain=youmoo.cn
// @grant none
// ==/UserScript==
(function foo() {
if(document.querySelector('video').paused){
document.querySelector('video').play()
}else{
setTimeout(foo, 1000)
}
})();
就是想做个监测视频,只要暂停了就让播放的功能。。
本帖最后由 Hangover 于 2021-12-17 22:38 编辑
molor 发表于 2021-12-17 22:09
这个是防暂停部分的调试过程,似乎没问题,等大神来之前再试试循环的部分。。 ...
你那个网站我进不去, 我以B站为例子每一秒检测一次 检测到暂停后自动播放
// ==UserScript==
// @name New Userscript
// @namespace https://bbs.tampermonkey.net.cn/
// @version 0.1.0
// @descriptiontry to take over the world!
// @author You
// @match https://www.bilibili.com/video/*
// ==/UserScript==
(function () {
'use strict';
var video = document.querySelector('video');
setInterval(() => {
if (video.paused) {
video.play();
}
}, 1000);
})();
if(document.querySelector('video').paused){
document.querySelector('video').play()
}else{
alert="ok"
}
Promise {<pending>}
if(document.querySelector('video').paused){
document.querySelector('video').play()
}else{
alert="ok"
}
'ok'
这个是防暂停部分的调试过程,似乎没问题,等大神来之前再试试循环的部分。。 这个可以参考脚本调试那节,一步一步跟一下,看看出什么问题了 var video = document.querySelector('video');
setInterval(() => {
if (video.ended) {
//写自动播放下一个视频的代码
console.log(video.ended); //ture
} else if (video.paused) {
video.play();
}
}, 3000);逻辑应该没问题,剩下的哥哥自己写写...
Hangover 发表于 2021-12-18 10:39
逻辑应该没问题,剩下的哥哥自己写写...
我也感觉逻辑没问题的 李恒道 发表于 2021-12-18 11:03
我也感觉逻辑没问题的
但我感觉用addEventListener监听状态会更好,定时器会给浏览器增加负担 本帖最后由 Hangover 于 2021-12-18 12:51 编辑
addEventListener监听元素状态变化会更温和点,测试也能达到同样的效果
// ==UserScript==
// @name New Userscript
// @namespace https://bbs.tampermonkey.net.cn/
// @version 0.1.0
// @descriptiontry to take over the world!
// @author You
// @run-at document-end
// @match https://www.bilibili.com/video/*
// ==/UserScript==
(function () {
'use strict';
var video = document.querySelector('video');
//loadedmetadata 事件在指定视频/音频的元数据加载后触发
video.addEventListener('loadedmetadata', () => {
setTimeout(() => {
video.play();
console.log('开始播放了!');
}, 3000); //3秒后自动播放
});
video.addEventListener('pause', () => {
if (video.ended) {
//写自动播放下一个视频的代码
console.log('播放完了!');
} else if (video.paused) {
video.play();
console.log('暂停后继续播放!');
}
});
/* setInterval(() => {
if (video.ended) {
//写自动播放下一个视频的代码
console.log(video.ended); //ture
} else if (video.paused) {
video.play();
}
}, 3000); */
})();
非常感谢,思路有了,甚至伸手要到了现成代码,我马上试试。 Hangover 发表于 2021-12-17 21:59
你那个网站我进不去, 我以B站为例子每一秒检测一次 检测到暂停后自动播放
{:4_115:}伸手使我愧疚,完美运行,我继续看索引学习Promise判定去了。。非常感谢!
页:
[1]
2