Greasy Fork is available in English.

去除简书、知乎、掘金外链安全限制

去除简书、知乎、掘金外链安全限制,将a标签改为直接跳转

"use strict";
// ==UserScript==
// @name         去除简书、知乎、掘金外链安全限制
// @namespace    https://raw.githubusercontent.com/Fog3211/tampermonkey/gh-pages/convert-link-to-safty.js
// @version      0.2.1
// @description  去除简书、知乎、掘金外链安全限制,将a标签改为直接跳转
// @author       Fog3211
// @match      https://*.jianshu.com/*
// @match      https://*.zhihu.com/*
// @match      https://*.juejin.cn/*
// @match      https://*.sspai.com/*
// @match      https://*.csdn.net/*
// @grant        none
// @license      MIT
// ==/UserScript==
(function () {
    'use strict';
    var loading = false;
    var ConfigList = [
        // https://www.jianshu.com/p/c5e07343515d
        { key: 'jianshu', linkSelector: ['//link.jianshu.com', '//links.jianshu.com'], splitFlag: 'to=' },
        { key: 'zhihu', linkSelector: ['//link.zhihu.com'], splitFlag: 'target=' },
        { key: 'juejin', linkSelector: ['//link.juejin.cn'], splitFlag: 'target=' },
        { key: 'sspai', linkSelector: ['https://sspai.com'], splitFlag: 'target=' },
        { key: 'csdn', linkSelector: ['https://blog.csdn.net'], splitFlag: 'target=', searchKey: 'target' }
    ];
    var getSearchParams = function (url, key) {
        if (!url)
            return null;
        var searchParams = new URLSearchParams(url);
        return searchParams.get(key);
    };
    var rewriteHref = function () {
        if (loading) {
            return;
        }
        loading = true;
        var record = ConfigList.find(function (u) { return window.location.hostname.includes(u.key); });
        if (record) {
            var aLists = Array.from(document.querySelectorAll(record.linkSelector.map(function (u) { return "a[href*='".concat(u, "']"); }).join(',')));
            aLists.forEach(function (elm) {
                /**
                 * 有可能会出现这种情况,所以要取最后一部分
                 * https://link.juejin.cn/?target=https%3A%2F%2Flink.juejin.cn%2F%3Ftarget%3Dhttps%253A%252F%252Fwww.npmjs.com%252Fpackage%252Fevents
                 */
                var matchs = decodeURIComponent(elm.href).split(record.splitFlag);
                if (matchs.length === 2) {
                    elm.setAttribute('href', matchs.pop());
                }
                else if (matchs.length > 2) {
                    elm.setAttribute('href', decodeURIComponent(matchs.pop()));
                }
            });
        }
        loading = false;
    };
    var redirectUrl = function () {
        var record = ConfigList.find(function (u) { return window.location.hostname.includes(u.key); });
        if (record === null || record === void 0 ? void 0 : record.searchKey) {
            var targetUrl = getSearchParams(window.location.href.split('?')[1], record.searchKey);
            if (targetUrl) {
                window.location.href = targetUrl;
            }
        }
    };
    redirectUrl();
    rewriteHref();
    setInterval(function () {
        rewriteHref();
    }, 3000);
})();