block xui auto generate path

防止某些版本的xui在查看path时自动更改path

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

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

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

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

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

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

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

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

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

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

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

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

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

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

// ==UserScript==
// @name         block xui auto generate path
// @namespace    http://tampermonkey.net/
// @version      1.0
// @description  防止某些版本的xui在查看path时自动更改path
// @author       LeiFeng
// @match        http://*/xui/*
// @match        http://*/*/xui/*
// @match        https://*/xui/*
// @match        https://*/*/xui/*
// @license MIT
// @grant        none
// @run-at document-start
// ==/UserScript==

(function () {
    "use strict";

    // 在页面解析时立即执行,替换相关代码
    const observer = new MutationObserver((mutations) => {
      mutations.forEach((mutation) => {
        mutation.addedNodes.forEach((node) => {
          if (node.nodeType === 1 && node.tagName === "SCRIPT") {
            const scriptContent = node.innerHTML;
            if (
              scriptContent.includes(
                "if (this.oldAllSetting.webBasePath === '/')"
              )
            ) {
              // 替换判断条件为false
              node.innerHTML = scriptContent.replace(
                "if (this.oldAllSetting.webBasePath === '/')",
                "if (false)"
              );
              console.log("判断条件已被替换为false");
            }
          }
        });
      });
    });

    // 开始监听整个文档的变化
    observer.observe(document.documentElement, {
      childList: true,
      subtree: true,
    });
  })();