您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Direct links out
当前为
- // ==UserScript==
- // @name Direct links
- // @name:ru Прямые ссылки
- // @namespace FIX
- // @version 0.0.2
- // @description Direct links out
- // @description:ru Замена ссылок на прямые
- // @author raletag
- // @match *://*/*
- // @grant unsafeWindow
- // ==/UserScript==
- (function() {
- 'use strict';
- console.time('Direct links load');
- var win = unsafeWindow || window;
- function Handler (e) {
- console.time('HandlerTime');
- try {
- var link = e.target, url = link.href, tourl, base64;
- if (!url) {
- while (!url && link !== this) {
- link = link.parentNode;
- url = link.href;
- }
- }
- link.removeEventListener('mouseover', Handler, false);
- if (!url) {
- return true;
- }
- tourl = decodeURIComponent((url.match(/[?&](url|r|z|to|u|go|st.link)=([^&]*)(&|$)/i)||url.match(/(\/leech_out\.php\?.:|\/phpBB2\/goto\/|\/go\/\?)(.*)/i)||[])[2]);
- if (!tourl) {
- return true;
- }
- try {
- base64 = win.atob(tourl);
- } catch (err) {
- }
- if (base64) {
- tourl = base64;
- }
- if (tourl.match(/^http(|s):\/\/([^&]*)/i)) {
- tourl = decodeURIComponent(escape(tourl));
- console.group("Direct links");
- console.info(url);
- console.info(tourl);
- link.href = tourl;
- console.timeEnd('HandlerTime');
- console.groupEnd();
- }
- } catch (err) {
- console.error('Direct links error: ' + err);
- console.timeEnd('HandlerTime');
- alert('Direct links error: ' + err);
- return true;
- }
- return true;
- }
- var links = document.getElementsByTagName('a');
- for (var i = links.length - 1; i >= 0; --i) {
- links[i].addEventListener('mouseover', Handler, false);
- }
- document.addEventListener('DOMNodeInserted',function(e){
- if (!e.currentTarget) return true;
- var links = e.currentTarget.getElementsByTagName('a');
- for (var i = links.length - 1; i >= 0; --i) {
- links[i].addEventListener('mouseover', Handler, false);
- }
- });
- console.timeEnd('Direct links load');
- })();