Greasy Fork is available in English.
原回放网址http://ispace.xjtu.edu.cn/course/16777/learning-activity太坑了, 用了iframe嵌入*://v.ispace.xjtu.edu.cn/replay-frame/*, 导致获取不到元素, 解决方法就是将脚本作用于*://v.ispace.xjtu.edu.cn/replay-frame/*, 油猴检测到iframe, 也会起作用
// ==UserScript==
// @name XJTU思源学习空间课程回放体验优化
// @namespace zaqai
// @match *://v.ispace.xjtu.edu.cn/replay-frame/*
// @grant none
// @version 1.0
// @author zaqai
// @description 原回放网址http://ispace.xjtu.edu.cn/course/16777/learning-activity太坑了, 用了iframe嵌入*://v.ispace.xjtu.edu.cn/replay-frame/*, 导致获取不到元素, 解决方法就是将脚本作用于*://v.ispace.xjtu.edu.cn/replay-frame/*, 油猴检测到iframe, 也会起作用
// @license MIT
// ==/UserScript==
'use strict'
// 创建一个点击事件处理函数
function simulateClick() {
// 选择要点击的元素
var elementToClick = document.querySelector("#multi-player > div.mvp-player-controls > div.mvp-controls-left-area > button > i");
// 创建一个鼠标点击事件
var clickEvent = new MouseEvent('click', {
bubbles: true,
cancelable: true,
view: window
});
// 触发点击事件
elementToClick.dispatchEvent(clickEvent);
}
// 监听键盘事件
document.addEventListener('keydown', function(event) {
// 检查是否按下的是空格键(键码为32)
if (event.keyCode === 32) {
// 阻止默认行为(防止空格键触发滚动)
event.preventDefault();
// 调用 simulateClick() 函数
simulateClick();
}
});
// 设置定时器等待iframe加载完成
var timer = setInterval(function() {
var targetElement = document.querySelector("#multi-player > div.mvp-videos-box");
if (targetElement) {
console.log("找到了指定的元素:", targetElement);
clearInterval(timer);
targetElement.addEventListener('click', simulateClick);
}else {
console.log("未找到指定的元素。");
}
}, 3000); // 每隔一秒钟尝试一次获取元素