打开新页面时保持弹出窗口打开

时间:2016-02-08 15:12:42

标签: javascript jquery html html5 google-chrome-extension

我有以下代码来介绍我的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打开并且我是确定有办法做到这一点。 我想同时打开它们。

这样做的最佳方式是什么?

2 个答案:

答案 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.tabschrome.windows API。