替换 Chrome 网页

扩展程序可以使用 HTML 覆盖网页来替换 Google Chrome 通常提供的网页。扩展程序可以覆盖以下任意网页,但每个扩展程序只能覆盖 1 个网页:

书签管理器
用户从 Chrome 菜单中选择“书签管理器”菜单项(或者在 Mac 上)从“书签”菜单中选择“书签管理器”菜单项时显示的网页。您也可以通过输入网址 chrome://bookmarks 来访问此页面。
历史记录
用户从 Chrome 菜单中选择“历史记录”菜单项(或在 Mac 上从“历史记录”菜单中选择“显示全部历史记录”)时显示的页面。您也可以通过输入网址 chrome://history 来访问此页面。
打开新的标签页
用户创建新标签页或窗口时显示的页面。您也可以通过输入网址 chrome://newtab 来访问此页面。

以下屏幕截图显示了默认的“新标签页”页面和自定义的“新标签页”页面。

默认的新标签页
默认的“新标签页”页面。
自定义的“新标签页”页面
一个自定义的“新标签页”页面。

如需尝试此操作,请参阅我们的替换示例

无痕式窗口行为

在无痕式窗口中,扩展程序无法覆盖“新标签页”页面。如果 无痕模式清单属性设为“spanning”(默认值),其他页面仍可正常运行。如需详细了解如何处理无痕式窗口,请参阅节省数据流量和使用无痕模式

清单

使用以下代码在扩展程序清单中注册替换页面:

{
  "manifest_version": 3,
  "name": "My extension",
  ...

  "chrome_url_overrides" : {
    "PAGE_TO_OVERRIDE": "myPage.html"
  },
  ...
}

PAGE_TO_OVERRIDE 替换为以下项之一:

  • "bookmarks"
  • "history"
  • "newtab"

最佳实践

  • 打造简洁明快的页面
    用户希望内置的浏览器页面能够立即打开。避免执行可能需要很长时间的操作。具体来说,请避免同步访问数据库资源。在发出网络请求时,请优先使用 fetch(),而不是 XMLHttpRequest()

  • 为避免用户混淆,请为网页命名。
    如果没有标题,网页标题会默认采用网址。在您的 HTML 文件中使用 <title> 标记指定标题。

  • 请注意,新标签页会先将键盘焦点放在地址栏上。
    请勿将键盘焦点默认为页面的其他部分。

  • 打造您自己的新标签页。
    避免创建可能会让用户与 Chrome 的默认“新标签页”页面混淆的新标签页。

示例

请参阅替换示例