replace ADF title

replace title

スクリプトをインストールするには、Tampermonkey, GreasemonkeyViolentmonkey のような拡張機能のインストールが必要です。

You will need to install an extension such as Tampermonkey to install this script.

スクリプトをインストールするには、TampermonkeyViolentmonkey のような拡張機能のインストールが必要です。

スクリプトをインストールするには、TampermonkeyUserscripts のような拡張機能のインストールが必要です。

このスクリプトをインストールするには、Tampermonkeyなどの拡張機能をインストールする必要があります。

このスクリプトをインストールするには、ユーザースクリプト管理ツールの拡張機能をインストールする必要があります。

(ユーザースクリプト管理ツールは設定済みなのでインストール!)

このスタイルをインストールするには、Stylusなどの拡張機能をインストールする必要があります。

このスタイルをインストールするには、Stylus などの拡張機能をインストールする必要があります。

このスタイルをインストールするには、Stylus tなどの拡張機能をインストールする必要があります。

このスタイルをインストールするには、ユーザースタイル管理用の拡張機能をインストールする必要があります。

このスタイルをインストールするには、ユーザースタイル管理用の拡張機能をインストールする必要があります。

このスタイルをインストールするには、ユーザースタイル管理用の拡張機能をインストールする必要があります。

(ユーザースタイル管理ツールは設定済みなのでインストール!)

このスクリプトの質問や評価の投稿はこちら通報はこちらへお寄せください
// ==UserScript==
// @name         replace ADF title
// @namespace    http://tampermonkey.net/
// @version      2026-05-13
// @description  replace title
// @author       You
// @match        https://adf.azure.com/*
// @match        https://*.azuredatabricks.net/*
// @icon         https://www.google.com/s2/favicons?sz=64&domain=azure.com
// @grant        none
// ==/UserScript==

(function() {
    'use strict';

    const replace_map = {
        "dtf-sgesss-dev-az1-cfpuv7hera2": "DEV ADF",
        "dtf-sgesss-dev-az1-m5rbvkhera2": "SIT ADF",
        "dtf-sgesss-uat-az1-kaoi9khera2": "UAT ADF",
        "sgesss-prd-az1-ramcat": "PRD ADF",

        "adb-4693644767318262": "DEV ADB",
        "adb-6251393601425350": "SIT ADB",
        "adb-3769403716554776.16": "UAT ADB",
        "adb-2232446691151506.6": "PRD ADB",
        "3263952417704082.2": "Optimus POC ADB",
        "328189355790169.9": "Optimus DEV ADB",
        "4167251017893463.3": "Optimus SIT ADB",

        "dtf-sgesss-dev-az1-tw12jnoptimus": "Opt POC ADF",
        "dtf-sgesss-dev-az1-p89dtaoptimus": "Opt SIT ADF",
        "adb-2869921049264012.12": "SIT2 ADB",
    };

    function updateTitle() {
        const url = window.location.href;
        let currentTitle = document.title;

        for (const [key, prefix] of Object.entries(replace_map)) {
            if (url.includes(key)) {
                // 检查是否已经加上了前缀
                const fullPrefix = prefix + " | ";
                if (!currentTitle.startsWith(fullPrefix)) {
                    // 核心逻辑:如果标题发生了变化(比如由于切换 Pipeline),
                    // 我们把新的标题内容接在我们的前缀后面
                    console.log("Updating title for:", prefix);

                    // 先把可能存在的旧前缀删掉(防止重复叠加),再加新的
                    let originalPart = currentTitle;
                    Object.values(replace_map).forEach(p => {
                        originalPart = originalPart.replace(p + " | ", "");
                    });

                    document.title = fullPrefix + originalPart;
                }
                break;
            }
        }
    }

    // 使用每秒检查一次的逻辑(你原有的习惯,最稳健)
    setInterval(updateTitle, 1000);

    // 同时配合 MutationObserver,让标题修改更即时
    const observer = new MutationObserver(updateTitle);
    const titleElement = document.querySelector('title');
    if (titleElement) {
        observer.observe(titleElement, { childList: true });
    }

})();