You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用UserScripts修改Twitter页面标题(将X改回Twitter)?

解决Twitter页面标题修改失效问题

问题描述

尝试将Twitter(现更名为X)页面标题中的“X”改回“Twitter”,使用document.title方法不仅无法修改标题,连console.log都没有输出,原代码如下:

var title = document.title;
if (title.endsWith("/ X")) {
  var new_title = title.slice(0, -3) + "/ Twitter";
  document.title = new_title;
}

失效原因

  1. 执行时机过早:Twitter是单页应用,页面初始加载时标题还未被动态设置,此时document.title为空或默认值,代码逻辑无法触发。
  2. 未监听动态标题变化:页面切换时Twitter会自动更新标题,单次执行的代码无法处理后续的标题变更。
  3. 判断条件过于严格:标题中的格式可能存在空格差异(比如实际是 / X而非/ X),endsWith的精准匹配会导致判断失效。

修复方案

使用MutationObserver监听标题元素的动态变化,同时处理初始加载时的标题:

// 监听标题元素的内容变化
const titleObserver = new MutationObserver((mutations) => {
  mutations.forEach(mutation => {
    const currentTitle = document.title;
    console.log('当前标题:', currentTitle);
    // 匹配包含" / X"的标题,替换为" / Twitter"
    if (currentTitle.includes(' / X')) {
      const newTitle = currentTitle.replace(' / X', ' / Twitter');
      document.title = newTitle;
      console.log('修改后标题:', newTitle);
    }
  });
});

// 开始监听title元素
const titleElement = document.querySelector('title');
if (titleElement) {
  titleObserver.observe(titleElement, { childList: true });
}

// 处理页面初始加载时的标题
const initialTitle = document.title;
console.log('初始标题:', initialTitle);
if (initialTitle.includes(' / X')) {
  document.title = initialTitle.replace(' / X', ' / Twitter');
}

额外注意事项

  • 如果是油猴脚本,确保脚本的@match规则正确覆盖Twitter的所有页面(比如https://twitter.com/*或https://x.com/*)。
  • 可以在浏览器控制台直接运行测试代码,确认标题替换逻辑是否生效。

内容的提问来源于stack exchange,提问作者Biast12

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.15 00:17:36