0

我在 Google chrome 中创建了一个简单的扩展,下面是我的 manifast.json

{
    "name":"Hello World",
    "version":"1.0",
    "manifest_version":2,
    "description":"The first extension that I made.",
    "browser_action":{
        "default_icon":"icon.png"
    },
    "background": {
        "scripts": ["background.js"]
    },
    "permissions":[
        "tabs", "http://*/*", "https://*/*"
    ]
} 

下面是我的 background.js。

alert('test application');

现在,扩展正在加载,但没有运行后台页面。

有人可以帮我吗?它在版本 24 上运行良好,但我想创建一个扩展来测试我的网页,它应该在任何 Chrome 版本上运行。

4

1 回答 1

0

为什么还要使用 Chrome 11?它太旧了。Chrome 24 稳定版刚刚发布。

但是,如果您确实需要支持不支持“manifest_version”的旧版 Chrome:2(例如,支持其他未与 Chrome 更新的基于 Chromium 的浏览器),这里有一些建议。

  • 编写 manifest.json 的多个版本,并使用不同版本的 Chrome 打包你的扩展,以支持旧版本和最新版本的 Chrome。说your_extension_chrome17.crxyour_extension_chrome18.crx(清单版本 2)。要求您的用户根据他们的 Chrome 版本下载相应的软件包。请注意,您必须使用"background_page": "bg.html"where bg.html 是包含背景脚本的背景页面,而不是"background": {...}(并且“background_page”不能在 v2 清单中使用)。"manifest_version": 2在 Chrome 17 之前将被默默忽略,所以这不会是一个麻烦。
  • 查看https://developer.chrome.com/trunk/extensions/whats_new.html以大致了解何时支持这些新 API 并考虑旧版本的解决方法。
  • 除非您需要支持 Chrome 6 或更早版本(您确定吗?),否则未知权限(在较新版本中受支持)将被静默忽略。
  • 为了获得自动更新支持,您需要注意更新清单。用于minprodversion防止安装新版本的包(也在minimum_chrome_versionmanifest.json 中设置)并在更新清单中包含多个条目。请注意,一个元素只能包含一个元素,因此您必须使用多个元素。有关详细信息,请参阅https://developer.chrome.com/extensions/autoupdate.html。例如:
<?xml version='1.0' encoding='UTF-8'?>
<gupdate xmlns='http://www.google.com/update2/response' protocol='2.0'>
  <app appid='aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa'>
    <updatecheck codebase='http://myhost.com/mytestextension/your_extension_chrome18.crx' version='2.0' prodversionmin='18.0.1025.142'/>
  </app>
  <app appid='aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa'>
    <updatecheck codebase='http://myhost.com/mytestextension/your_extension_chrome17.crx' version='2.0' prodversionmin='3.0.193.0'/>
  </app>
</gupdate>

并且一定要在不同的版本中彻底测试你的扩展,虽然这会很头疼。据我所知,您不能将这些技巧用于托管在 Chrome Web Store 中的扩展程序。

于 2013-01-12T12:29:46.390 回答