Greasy Fork

Greasy Fork is available in English.

DuckDuckGo标签页标题修改

强制将 DuckDuckGo 主页的标签页标题更改为“New Tab”

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

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

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

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

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

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

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

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

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

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

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

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

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

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

// ==UserScript==
// @name         DuckDuckGo标签页标题修改
// @namespace    http://tampermonkey.net/
// @version      2.5
// @description  强制将 DuckDuckGo 主页的标签页标题更改为“New Tab”
// @author       Richard Tyson
// @license      MIT
// @match        https://start.duckduckgo.com/
// @grant        none
// @run-at       document-start
// ==/UserScript==

(function() {
    'use strict';

    // 尽早设置标题
    document.title = "New Tab";

    // 使用 requestAnimationFrame 持续检查和设置标题
    const ensureTitle = () => {
        if (document.title !== "New Tab") {
            document.title = "New Tab";
        }
        // 使用 requestAnimationFrame 持续进行下一次检查
        requestAnimationFrame(ensureTitle);
    };

    // 在页面加载时立即开始持续检查
    ensureTitle();

    // 使用 MutationObserver 监控并强制设置标题
    const observer = new MutationObserver(() => {
        if (document.title !== "New Tab") {
            document.title = "New Tab";
        }
    });

    // 观察 head 节点的子节点变化
    observer.observe(document.head, { childList: true, subtree: true });

})();