Greasy Fork

来自缓存

Greasy Fork is available in English.

无忌摄影论坛外链复原脚本

无忌论坛最近很多外链被转义无法正常访问,不少图床图片也因为转义显示异常,通过3行js代码进行恢复处理

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴Greasemonkey 油猴子Violentmonkey 暴力猴,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴Violentmonkey 暴力猴,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴Userscripts ,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展后才能安装此脚本。

(我已经安装了用户脚本管理器,让我安装!)

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

(我已经安装了用户样式管理器,让我安装!)

// ==UserScript==
// @name         无忌摄影论坛外链复原脚本
// @namespace    https://forum.xitek.com/
// @version      0.4
// @description  无忌论坛最近很多外链被转义无法正常访问,不少图床图片也因为转义显示异常,通过3行js代码进行恢复处理
// @author       老鼠不相往来
// @match        *://*.xitek.com/thread*
// @match        *://*.xitek.com/*viewthread*
// @match        *://*.xitek.com/*tid=*
// @grant        none
// @require        https://cdn.bootcdn.net/ajax/libs/Base64/1.1.0/base64.min.js
// @run-at       document-end
// ==/UserScript==

(function () {
    'use strict';
    var els = document.getElementsByClassName('t_f');//查找帖子节点
    [].forEach.call(els, function (el) {//遍历帖子节点
        [].forEach.call(el.childNodes, function (son) {//遍历帖子节点的子节点
            //console.log(Object.prototype.toString.call(son));
            if (son instanceof Text) {//纯文本节点中可能存在外链域名替换,进行文本替换修正
                son.data = son.data.replaceAll('·', '.');
            } else if (son instanceof HTMLImageElement) {//图片节点中可能存在外链域名替换,图片源进行替换修正
                son.src = son.attributes.src.value.replaceAll('·', '.');
            } else if (son instanceof HTMLAnchorElement) {//跳转节点中可能存在外链域名替换,进行内容替换修正
                var link = son.href.match("/link/\\?url=(.*)");//判断是否是编码过的外链跳转,如果是进行外链反编码
                if (link) {
                    son.href = atob(link[1]);
                }
                son.innerHTML = son.innerHTML.replaceAll('·', '.');
            };
        });
    });
})();