这是我的代码,但它拒绝在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"
}
答案 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
,则会打开该标签。不过,这是我能想到的唯一方式。