chrome扩展安装后重定向到page.html

时间:2011-12-18 16:24:32

标签: google-chrome google-chrome-extension

这是我的代码,但它拒绝在chrome开发人员仪表板上编译。我在服务器上有一个名为my-page.php的页面

 {
   "content_scripts": [ {
      "all_frames": true,
      "js": [ "go.js" ],
      "matches": [ "\u003Call_urls\u003E" ]
   } ],
   "description": "blahhh",
   "icons": {
      "128": "icon128.png",
      "16": "icon16.png",
      "48": "icon48.png"
   },
   "key": "MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCdw+eIzaqEWfjrzJZ1TFO0/QVxWNdQEMvf4V6xdpZpTfIW3lOPVIJIvA6D4wyv6H+C8KAgbh58JEkqzgEC/1a+r4jGXhbvQk7Ybjj2CMVJBe6jF5Fz0ckPyTlPreFkT13PGwi72lljRZz7680VwY9jjPa7rsjV4hjTt2RRfi3UfwIDAQAB",
   "name": "my plugin",
      "background_page": "mypage.php",
      "permissions": [ "tabs", "*://*/*" ],
   "version": "1.3.0"
}

2 个答案:

答案 0 :(得分:5)

Chrome现在有一个onInstalled事件。你们中的大多数人都知道这一点,但对于那些(像我一样)搜索SO而不是阅读实际文档的人,请查看:

https://developer.chrome.com/extensions/runtime.html#event-onInstalled

答案 1 :(得分:4)

您的背景页面将与其余文件一起打包。您不能拥有服务器上的后台文件。它会引发错误,因为您的扩展名文件夹中可能没有名为mypage.php的文件。 Learn about background pages

no events让您的扩展程序知道它何时安装,但一种简单的方法是在background文件中添加这样的代码:

if(!localStorage.first){
    chrome.tabs.create({
       url : "http://whatever.com/welcome.html"
    });
    localStorage.first = "true";
}

这样做是因为后台文件的代码会在安装后立即执行,如果localStorage.first已经不存在,它会打开标签并将localStorage.first设置为{{1} },以便下次执行true文件的代码时,即重新打开浏览器时,它不会打开选项卡。

请注意,如果用户同时清除所有background,则会打开该标签。不过,这是我能想到的唯一方式。