Overriding Chrome pages(覆盖 Chrome 页面)
警告
此页面直接从 MV2 文档集迁移而来。它尚未经过验证是否符合 Manifest V3。
覆盖页面是一种将扩展程序中的 HTML 文件替换为 Google Chrome 通常提供的页面的方法。除了 HTML 之外,覆盖页面通常还有 CSS 和 JavaScript 代码。
一个扩展可以替换以下任何一个页面:
- Bookmark Manager:当用户从 Chrome 菜单中选择书签管理器菜单项或在 Mac 上从书签菜单中选择书签管理器项时出现的页面。您也可以通过输入 URL 进入此页面chrome://bookmarks.
- History:当用户从 Chrome 菜单中选择历史菜单项或在 Mac 上从历史菜单中选择显示完整历史项时出现的页面。您也可以通过输入 URL 进入此页面chrome://history
- New Tab:用户创建新选项卡或窗口时出现的页面。您也可以通过输入 URL 进入此页面chrome://newtab
注意:单个扩展只能覆盖一页。例如,扩展程序不能同时覆盖书签管理器和历史记录页面。
隐身窗口经过特殊处理。新标签页不能在隐身(incognito)窗口中被覆盖。只要隐身清单属性设置为“跨越spanning
”(这是默认值),其他覆盖页面就可以在隐身窗口中工作。有关如何处理隐身窗口的更多详细信息,请参阅概述中的保存数据和隐身模式(Saving data and incognito mode)。
以下屏幕截图显示了默认的新标签页,然后是自定义的新标签页。
# Manifest
在扩展清单中注册一个覆盖页面,如下所示:
{
"name": "My extension",
...
"chrome_url_overrides" : {
"pageToOverride": "myPage.html"
},
...
}
对于 _pageToOverride_
,替换以下内容之一:
bookmarks
history
newtab
# Tips(提示)
要获得有效的覆盖页面,请遵循以下准则:
- 使您的页面快速而小巧。用户希望内置浏览器页面能够立即打开。避免做可能需要很长时间的事情。例如,避免同步获取网络或数据库资源。
- 在您的页面中包含一个标题。否则人们可能会看到页面的 URL,这可能会造成混淆。这是指定标题的示例:
<title>New Tab</title>
。 - 不要依赖具有键盘焦点的页面。当用户创建新选项卡时,地址栏总是首先获得焦点。
- 不要尝试模拟默认的新标签页。创建默认新标签页的略微修改版本所需的 API(包括首页、最近关闭的页面、提示、主题背景图像等)尚不存在。在他们这样做之前,你最好尝试做出完全不同的东西。
# Examples
请参阅覆盖示例(override samples)。
By.一粒技术服务.