您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
一键静音,一键加速,一键评论
此脚本不应直接安装。它是供其他脚本使用的外部库,要使用该库请加入元指令 // @require https://update.cn-greasyfork.org/scripts/544943/1637367/%E5%BB%BA%E8%A1%8C%E5%AD%A6%E4%B9%A0%E5%88%B7%E8%AF%BE%E8%84%9A%E6%9C%AC11%E7%89%88%E6%9C%AC.js
// ==UserScript== // @name 建行学习刷课脚本1.1版本 // @namespace http://tampermonkey.net/ // @version 2025-08-08 // @description 一键静音,一键加速,一键评论 // @author 听说你很会玩 // @match https://u.ccb.com/*/ // @icon https://www.google.com/s2/favicons?sz=64&domain=ccb.com // @grant none // ==/UserScript== (function() { 'use strict'; //关闭debugger断点 window.debugger = function(){}; Function.prototype.constructor = function() {}; function waitForVideo() { // 尝试穿透Shadow DOM const findVideoInShadow = (node) => { if (node instanceof ShadowRoot) { const video = node.querySelector('video'); if (video) return video; for (const child of node.children) { const result = findVideoInShadow(child); if (result) return result; } } return null; }; // 常规查找 let video = document.querySelector('video'); if (video) return video; // 查找iframe const iframes = document.querySelectorAll('iframe'); for (const iframe of iframes) { try { // 尝试访问同源iframe if (iframe.contentDocument) { video = iframe.contentDocument.querySelector('video'); if (video) return video; } } catch (e) { // 跨域iframe会抛出安全错误 console.log('无法访问iframe内容:', e); } } // 查找Shadow DOM const allElements = document.querySelectorAll('*'); for (const el of allElements) { const video = findVideoInShadow(el.shadowRoot); if (video) return video; } return null; } // 模拟用户点击 function simulateClick(element) { console.log("模拟用户点击..."); const event = new MouseEvent('click', { view: window, bubbles: true, cancelable: true }); element.dispatchEvent(event); setTimeout(() => { if (element.paused) { console.log("模拟点击失败,尝试直接播放"); element.play().catch(e => console.log(`直接播放失败: ${e}`)); } }, 500); } // 使用MutationObserver监听DOM变化 const observer = new MutationObserver(() => { const video = waitForVideo(); if (video) { observer.disconnect(); console.log('找到视频元素:', video); // 在这里处理视频元素 console.log("当前视频的播放速度为:"+video.playbackRate+"倍速"); // 2.输入您的视频播放速度 video.muted = true;//静音 // 尝试播放 const playPromise = video.play(); console.log("视频自动播放成功了"+playPromise); if (playPromise !== undefined) { playPromise.then(() => { console.log("自动播放成功!"); video.muted = false; // 尝试取消静音 }).catch(error => { console.log("自动播放失败: {"+error+"}"); simulateClick(video); }); } //获取留言板便签类 let Message = document.getElementsByClassName("el-form")[0]; if(Message == undefined){ Message = document.getElementsByClassName("textarea-content")[0] } //创建第一个按钮 const button1 = document.createElement('button'); button1.id = 'dynamicBtn1'; button1.className = 'btn btn-primary'; button1.innerHTML = '取消静音'; button1.onclick = function (){ video.muted = !video.muted;//取消静音 switch (video.muted){ case false: button1.innerHTML = '静音'; break; case true: button1.innerHTML = '取消静音'; break; } } // 创建第二个按钮 const button2 = document.createElement('button'); button2.id = 'dynamicBtn2'; button2.className = 'btn btn-secondary'; button2.innerHTML = '视频加速'; button2.onclick = function (){ video.playbackRate++; console.log("当前视频播放速度为"+video.playbackRate+"倍速!!!"); if(video.playbackRate >= 16){ alert("视频最大播放速度为16倍速!!!"); video.playbackRate = 16; } } //创建第三个按钮 const button3 = document.createElement('button'); button3.id = 'dynamicBtn3'; button3.className = 'btn btn-third'; button3.innerHTML = '一键留言评论'; button3.onclick = function (){ const messageArea = document.getElementsByTagName("textarea")[0];//获取留言文本内容框 const push1 = document.getElementsByClassName("el-button fr el-button--primary el-button--mini is-round")[0];//获取发表按钮 console.log("添加留言板!!") // 设置textarea的值 messageArea.value = "视频讲解很详细!向优秀看齐!"; push1.click(); } // 添加到容器 Message.appendChild(button1); Message.appendChild(button2); Message.appendChild(button3); } }); observer.observe(document, { childList: true, subtree: true }); // 初始检查 const video = waitForVideo(); if (video) { console.log('立即找到视频元素:', video); } })();