我是Chrome扩展新用户。我有一个问题,关于如何使扩展程序在安装后自动打开“帮助”页面。目前,我可以通过将值保存到localStorage来检查扩展是否第一次运行。但只有在单击工具栏上的图标时才会执行此检查。只是想知道是否有一种方式喜欢FF扩展,它在安装后使用javascript打开帮助页面。感谢。
编辑: 感谢davgothic的回答。我已经解决了这个问题。 我有关于弹出窗口的另一个问题。我的扩展程序会检查当前标签的网址,
if OK(url){ //open a tab and do something } else{ //display popup }是否有可能以这种方式显示弹出窗口?
答案 0 :(得分:56)
检查Chrome提供的此更新且最可靠的解决方案:chrome.runtime Event
chrome.runtime.onInstalled.addListener(function (object) {
chrome.tabs.create({url: "http://yoursite.com/"}, function (tab) {
console.log("New tab launched with http://yoursite.com/");
});
});
将此添加到您的background.js
我的意思是您在清单上定义的页面,如下所示,
....
"background": {
"scripts": ["background.js"],
"persistent": false
}
...
答案 1 :(得分:25)
更新:不再推荐此方法。请参阅Nuhil's more recent answer below。
我相信您需要做的就是将这样的内容放入扩展程序背景页的<head>
部分的脚本中,例如: background.html
function install_notice() {
if (localStorage.getItem('install_time'))
return;
var now = new Date().getTime();
localStorage.setItem('install_time', now);
chrome.tabs.create({url: "installed.html"});
}
install_notice();
答案 2 :(得分:5)
最好放置一个“版本”号码,以便了解何时更新或安装扩展程序。
答案 3 :(得分:1)
截至目前(2020年11月),在首次安装或更新扩展程序时执行代码的正确方法是使用runtime.onInstalled事件。
此事件记录在这里:https://developer.chrome.com/extensions/runtime#event-onInstalled
chrome.runtime.onInstalled.addListener(function (details) {
if (details.reason === "install") {
// Code to be executed on first install
// eg. open a tab with a url
chrome.tabs.create({
url: "https://google.com"
});
} else if (details.reason === "update") {
// When extension is updated
} else if (details.reason === "chrome_update") {
// When browser is updated
} else if (details.reason === "shared_module_update") {
// When a shared module is updated
}
});
此代码可以添加到后台脚本中:https://developer.chrome.com/extensions/background_pages
答案 4 :(得分:0)
您需要做的就是将下面的代码段添加到background.js
文件中
chrome.runtime.onInstalled.addListener(function (object) {
chrome.tabs.create({url: `chrome-extension://${chrome.runtime.id}/options.html`}, function (tab) {
console.log("options page opened");
});
});