// ==UserScript== // @name 重写av页实验 // @namespace Motoori Kashin // @version 0.1.1 // @description 测试中的脚本,基本不能使用,希望能作为大家的参考。重写的最简陋的启用b站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重新获取),这里为了测试删除了下级所有标签(包括上面那个关键脚本可能依赖的标签) '
'; // 用重写的替换占位的"xxx" html = html.replace(/xxx/g,wrb); document.open(); document.write(html); document.close(); }; xhr.send(); })();