1. 程式人生 > 其它 >油猴指令碼 調B站播放速度

油猴指令碼 調B站播放速度

// ==UserScript==
// @name         New Userscript
// @namespace    http://tampermonkey.net/
// @version      0.1
// @description  try to take over the world!
// @author       You
// @match        *bilibili*
// @include  *bilibili*
// @require           https://cdn.bootcss.com/jquery/1.12.4/jquery.min.js
// @grant              GM.getValue
// @grant GM.setValue // @grant GM.listValues // @grant GM.deleteValue // @grant GM.openInTab // @grant GM.registerMenuCommand // @grant GM_unregisterMenuCommand // @grant GM_addStyle // @run-at document-idle // @grant unsafeWindow
// ==/UserScript== function sleep(time) { console.log(`sleep被呼叫`,time) return new Promise((resolve) => setTimeout(resolve, time)); } (function() { 'use strict'; GM_addStyle(' .h-ol {position: absolute;top: 100px;left: 10px;z-index:9999 }'); let apiList = '<ul class="h-ol" id="my_wsh" ></ul>'; $(document.body).append(apiList); $(
'.h-ol').append(`<li> <input type="text" Style="width:24px" id="myratevalid" value="1"> </li>`); $('.h-ol').append(`<li><button type="button" id="myrate000">speed</button> </li>`); window.onload = function () { //方法內容 let mymap = []; function fds(node) { if (node.nodeType === 1) { // node.id = "id" + map_num.toLocaleString(); //給節點設定ID if (! mymap.includes(node.nodeName.toLocaleString(),0) ) { mymap.push(node.nodeName.toLocaleString()) } } //獲取該元素節點的所有子節點 var children = node.childNodes; for (var i = 0; i < children.length; i++) { //遞迴呼叫 fds(children[i]); } } fds(document) // 用法 sleep(2500).then(() => { // 這裡寫sleep之後需要去做的事情 console.log(mymap) for (let j = 0; j < mymap.length; j++) { //遞迴呼叫 if(mymap[j].indexOf('VIDEO',0)!=-1){ console.log(`by_wsh看這裡 myv=document.getElementsByTagName("`+mymap[j]+`")`) let myv_0=mymap[j] console.log(myv_0) // myv_0=document.getElementsByTagName(mymap[j])[0] document.getElementById("myrate000").addEventListener("click", function(){ console.log(`觸發按鈕事件`) let speed0=parseFloat(document.getElementById("myratevalid").value); document.getElementsByTagName(myv_0)[0].playbackRate=speed0 }); } } }) var e var box = document.getElementById("my_wsh"); //獲取元素 var x, y; //滑鼠相對與div左邊,上邊的偏移 var isDrop = false; //移動狀態的判斷滑鼠按下才能移動 box.onmousedown = function (e) { e = e || window.event; //要用event這個物件來獲取滑鼠的位置 x = e.clientX - box.offsetLeft; y = e.clientY - box.offsetTop; isDrop = true; //設為true表示可以移動 } document.onmousemove = function (e) { //是否為可移動狀態 if (isDrop) { e = e || window.event; var moveX = e.clientX - x; //得到距離左邊移動距離 var moveY = e.clientY - y; //得到距離上邊移動距離 //可移動最大距離 var maxX = document.documentElement.clientWidth - box.offsetWidth; var maxY = document.documentElement.clientHeight - box.offsetHeight; //範圍限定 當移動的距離最小時取最大 移動的距離最大時取最小 //範圍限定方法一 /*if(moveX < 0) { moveX = 0 } else if(moveX > maxX) { moveX = maxX; } if(moveY < 0) { moveY = 0; } else if(moveY > maxY) { moveY = maxY; } */ //範圍限定方法二 moveX = Math.min(maxX, Math.max(0, moveX)); moveY = Math.min(maxY, Math.max(0, moveY)); box.style.left = moveX + "px"; box.style.top = moveY + "px"; } else { return; } } document.onmouseup = function () { isDrop = false; //設定為false不可移動 } } })();