Greasy Fork 支持简体中文。

XJTU思源学习空间课程回放体验优化

原回放网址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); // 每隔一秒钟尝试一次获取元素