replace title
// ==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 });
}
})();