// ==UserScript== // @name 还我av页旧版播放器 // @namespace Motoori Kashin // @version 1.0 // @description 基本实现了在bilibli的av页启用旧版播放器,剩下些布局问题和会跳转的av页问题 // @author Motoori Kashin // @match *://*.bilibili.com/video/av* // @grant none // @downloadURL none // ==/UserScript== (function() { 'use strict'; window.stop(); // 收回前言jquery.1.7.4.js是通过定时器载入的,而且会取代重写引入的jquery.min.js,所以还是要清除 var highestTimeoutId = setTimeout(";"); for (var i = 0 ; i < highestTimeoutId ; i++) { clearTimeout(i);//清除所有定时器,防止后续Element载入 } const xhr = new XMLHttpRequest(); xhr.open('GET', window.location.href);// 返回新播放页,为重写提供可能需要的数据,不过貌似用不到 xhr.onload = () => { var html = xhr.responseText.replace(//g,"");// ---------------------清空所有' + ''+ ''+ '';// 使播放器居中 html = html.replace(/<\/head>/g,wrh); // 开始重写,这里未调用任何新版播放页返回的数据直接写最基本框架来测试(去除了所有依赖av号数据的内容) var wrb = '
'+// 新添加了版头,后面还添加了版尾 '
' + // 复写原生网页残留的两个函数,他们是导致播放器大小变化的罪魁祸首 '' + // 两个最基本的js脚本,第二个应该就是旧版播放器 '' + '' + '
' + '' + '
' + // 2018年5月2日旧版av页的主体部分,网页显示全部内容都在这个id="app"的div里,其中很多内容(后端直接写在网页里的)需要依赖上面新av页数据返回来修改(或者用api重新获取),这里为了测试删除了下级所有标签(包括上面那个关键脚本可能依赖的标签) // 在审查元素界面可以看到,自动生成了很多信息,包括视频信息和up信息 '
'; // 用重写的替换占位的"xxx" html = html.replace(/xxx/g,wrb); document.open(); document.write(html); document.close(); }; xhr.send(); })();