我有以下代码来介绍我的Chrome扩展程序。
// detect if this is the first time running
var first_run = false;
if (!localStorage['ran_before']) {
first_run = true;
localStorage['ran_before'] = '1';
}
// if not, start the intro() script
if (first_run) intro();
// intro script
function intro() {
window.open("intro/index.html", '_blank');
}
但遗憾的是,当我点击扩展程序时,它不会打开popup.html
但只是打开介绍页面..它需要保持popup.html
打开并且我是确定有办法做到这一点。 我想同时打开它们。
这样做的最佳方式是什么?
答案 0 :(得分:3)
您使用的方法是有效的,应该可行,但您可能应该这样做 只需使用onInstalled事件即可:
chrome.runtime.onInstalled.addListener(function(info){
if(info.reason == "install"){
console.log("Installed!");
}else if(info.reason == "update"){
console.log("Updated!");
}
});
它不需要新的权限,并且会使您的安装代码与代码的其余部分明确分开。
答案 1 :(得分:0)
虽然Marc Guiselin的答案非常好,但知道如何在不关闭弹出窗口的情况下打开标签可能会很有用。
你可以在后台打开标签,这样就不会关闭你的弹出窗口。
chrome.tabs.create({
url: chrome.runtime.getURL("intro/index.html"),
active: false
});
通常,您应该避免在扩展程序中使用window.open
,而是使用chrome.tabs
和chrome.windows
API。