Greasy Fork is available in English.
优化超星键盘控制观看体验,小键盘上下左右控制时间音量,加减控制倍速,若无效请单击窗口任一处再尝试,若仍无效请反馈
当前为
// ==UserScript==
// @name 超星键盘控制优化
// @namespace http://greasyfork.icu/zh-CN/users/782923-aaaasea
// @version 1.2
// @description 优化超星键盘控制观看体验,小键盘上下左右控制时间音量,加减控制倍速,若无效请单击窗口任一处再尝试,若仍无效请反馈
// @author Asea Q:569389750
// @match https://mooc1-1.chaoxing.com/mycourse/studentstudy*
// @icon data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==
// @grant none
// ==/UserScript==
(function() {
mainfn_flag = false
window.onload =()=>{
if(mainfn_flag===false)
{
mainfn = setInterval(mainkeybind, 1000);
mainfn_flag = true;
}
}
var old_url = window.location.href;
if(mainfn_flag===false)
{
mainfn = setInterval(mainkeybind, 1000);
mainfn_flag = true;
}
function mainkeybind(){
if(document.readyState == 'complete'){
// console.log('---超星键盘控制优化---')
// console.log('开始绑定')
urlfn = setInterval(url_listener, 2000)
//reurn false 禁止函数内部执行其他的事件或者
var vol = 0.1; //1代表100%音量,每次增减0.1
var time = 5; //单位秒,每次增减10秒
var rate = 0.2
try
{
var videoElement = document.getElementById("iframe").contentWindow.document.querySelector("iframe").contentWindow.document.querySelector('video');
// console.log('变量设置完毕')
document.onkeyup = keybind
videoElement.onkeyup = keybind
function keybind(event) {//键盘事件
// console.log("keyCode:" + event.keyCode);
var e = event || window.event || arguments.callee.caller.arguments[0];
//鼠标上下键控制视频音量
if (e && e.keyCode === 38) {
// 按 向上键
videoElement.volume !== 1 ? videoElement.volume += vol : 1;
return false;
} else if (e && e.keyCode === 40) {
// 按 向下键
videoElement.volume !== 0 ? videoElement.volume -= vol : 1;
return false;
} else if (e && e.keyCode === 37) {
// 按 向左键
videoElement.currentTime !== 0 ? videoElement.currentTime -= time : 1;
return false;
} else if (e && e.keyCode === 39) {
// 按 向右键
videoElement.volume !== videoElement.duration ? videoElement.currentTime += time : 1;
return false;
} else if (e && e.keyCode === 32) {
// 按空格键 判断当前是否暂停
videoElement.paused === true ? videoElement.play() : videoElement.pause();
return false;
} else if(e && e.keyCode === 187) {
videoElement.playbackRate > 0 && videoElement.playbackRate < 16 ? videoElement.playbackRate = (videoElement.playbackRate+rate).toFixed(1) : 1;
return false;
} else if(e && e.keyCode === 189) {
videoElement.playbackRate > 0 ? videoElement.playbackRate = (videoElement.playbackRate-rate).toFixed(1) : 1;
return false;
}
};
console.log('键盘事件绑定成功')
clearInterval(mainfn);
mainfn_flag = false;
}
catch{
console.log('loading')
}
}
}
function url_listener()
{
var now_url = window.location.href;
if (now_url !== old_url)
{
old_url = now_url;
mainfn = setInterval(mainkeybind, 500);
clearInterval(urlfn);
}
}
})();