【发布时间】:2012-09-26 19:44:14
【问题描述】:
我想将我的所有扩展升级到版本 2,但仍然向后兼容仍然安装旧版 chrome 的人。
由于目前不支持多个清单版本,我想知道支持 "manifest_version": 2 及其属性的最低 Chrome 版本。
【问题讨论】:
标签: google-chrome google-chrome-extension version manifest
我想将我的所有扩展升级到版本 2,但仍然向后兼容仍然安装旧版 chrome 的人。
由于目前不支持多个清单版本,我想知道支持 "manifest_version": 2 及其属性的最低 Chrome 版本。
【问题讨论】:
标签: google-chrome google-chrome-extension version manifest
Manifest v2 是在 Chrome 18 中引入的。使用 Manifest 版本 2 将 several requirements 添加到扩展中,最重要的是:
<script> 标签加载外部 JavaScript 文件,并且不允许执行通过字符串创建的 JavaScript 代码:内联事件侦听器、内联脚本、eval、等等web_accessible_resources 字段在一个空列表中启动,因此默认情况下所有资源都被列入黑名单。"background_page" 清单条目变得不可用(被 "background" + "scripts" 或 "page" 取代)。Manifest 2 还允许使用一些 API,for example the chrome.storage API。当 manifest v2 被省略时,this message 将出现在您的扩展程序下方。
除了最后一句话,所有这些要求都导致 Chrome 扩展程序的编码指南更加严格(与清单 v1 相比)。
"background": {"scripts": ["..."]}(和 "page")与 Chrome 17 及更低版本向后不兼容,因为它是 introduced in Chrome 18。请改用"background_page": "background.html"。如果您不使用后台页面,则仅可以使用所有 Chrome 版本的扩展程序。在其他情况下,无法实现这样的混合(manifest v1+v2 兼容)扩展。
如果您打算分发两个不同的扩展,请在清单文件中设置 "minimum_chrome_version": "18"。不要忘记提及旧浏览器的扩展程序的位置。
【讨论】: