强制新窗口在tab中打开

强制新窗口在tab中打开1

您需要先安装一个扩展,例如 篡改猴Greasemonkey暴力猴,之后才能安装此脚本。

您需要先安装一个扩展,例如 篡改猴暴力猴,之后才能安装此脚本。

您需要先安装一个扩展,例如 篡改猴暴力猴,之后才能安装此脚本。

您需要先安装一个扩展,例如 篡改猴Userscripts ,之后才能安装此脚本。

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

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

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

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

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

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

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

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

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

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

// ==UserScript==
// @name         强制新窗口在tab中打开
// @namespace    http://tampermonkey.net/
// @version      1.1
// @description  强制新窗口在tab中打开1
// @author       You
// @match        *://*/*
// @grant        none
// @license MIT
// ==/UserScript==


(function() {
    'use strict';

    // 1. 保存原始的 window.open 方法(确保拿到浏览器原生方法)
    const originalOpen = window.open;

    // 2. 重写 window.open 方法(优化:传递所有参数,避免丢失features)
    window.open = function(url, target, features) {
        // 强制 target 为 _blank(忽略页面传入的 target)
        const newTarget = "_blank";
        // 关键:把 features 也传给原始方法(比如页面要设置窗口大小,虽我们强制新标签,但不丢参数)
        return originalOpen.call(window, url, newTarget);
    };

})();