Greasy Fork

来自缓存

在当前标签页中打开链接

所有链接都会在当前标签页中打开,而不是新的标签页或窗口,脚本菜单可以当前网站启用与禁用

目前为 2023-03-07 提交的版本。查看 最新版本

// ==UserScript==
// @name         在当前标签页中打开链接
// @version      1.0
// @author ChatGPT定制
// @description  所有链接都会在当前标签页中打开,而不是新的标签页或窗口,脚本菜单可以当前网站启用与禁用
// @match        *://*/*
// @grant        GM_registerMenuCommand
// @grant        GM_setValue
// @grant        GM_getValue
// @run-at      document-end
// @namespace https://greasyfork.org/users/452911
// ==/UserScript==

(function() {
    'use strict';
    // 获取当前网站URL,并根据其生成一个唯一的存储键
    var storageKey = window.location.href.replace(/\/|\./g, '_');
    // 根据存储键获取已保存的设置(如果存在)
    var isEnabled = GM_getValue(storageKey, true);
    // 获取页面上所有的链接
    var links = document.getElementsByTagName('a');

    // 遍历所有链接,并将它们的目标属性设置为“_self”
    function enableLinks() {
        for (var i = 0; i < links.length; i++) {
            links[i].target = '_self';
        }
        isEnabled = true;
        GM_setValue(storageKey, true);
    }

    // 遍历所有链接,并将它们的目标属性设置为“_blank”
    function disableLinks() {
        for (var i = 0; i < links.length; i++) {
            links[i].target = '_blank';
        }
        isEnabled = false;
        GM_setValue(storageKey, false);
    }

    // 根据保存的设置来启用或禁用链接
    if (isEnabled) {
        enableLinks();
    } else {
        disableLinks();
    }

    // 创建油猴菜单项,在菜单中添加“启用”和“禁用”选项
    GM_registerMenuCommand(isEnabled ? '禁用强制当前标签打开' : '启用强制当前标签打开', function() {
        if (isEnabled) {
            disableLinks();
        } else {
            enableLinks();
        }
    });
})();