您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
避免WebVPN劫持CC98站外链接
当前为
// ==UserScript== // @name Escape From WebVPN // @version 0.0.1 // @description 避免WebVPN劫持CC98站外链接 // @icon https://www.cc98.org/static/98icon.ico // @author ml98 // @namespace http://tampermonkey.net/ // @license MIT // @match http://www-cc98-org-s.webvpn.zju.edu.cn:8001/* // @run-at document-idle // @grant none // ==/UserScript== /* eslint-env jquery */ function decodeWebVPNURL(url) { try { var urlObj = new URL(url); } catch(e) { return ''; } let host = urlObj.host; let suffix = '.webvpn.zju.edu.cn:8001'; if (host.endsWith(suffix)) { host = host.slice(0, host.length - suffix.length); } else { return url; } if (host.endsWith('-s')) { urlObj.protocol = 'https:'; host = host.slice(0, host.length - 2); } if (host.endsWith('-p')) { host = host.slice(0, host.length - 2); urlObj.port = host.slice(host.lastIndexOf('-') + 1); host = host.slice(0, host.lastIndexOf('-')); } else { urlObj.port = ''; } urlObj.host = host.replaceAll('-', '.').replaceAll('..', '-'); return urlObj + ''; } $(document).on('click', 'a', function(e) { if(this.href && new URL(this.href).host !== 'www.cc98.org') { e.preventDefault(); window.open().location = decodeWebVPNURL(this.href); return false; } })