2016-02-08 3 views
0

У меня есть следующий код для ознакомления с расширением Chrome.Keep Popup Open при открытии новой страницы

// 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

Если вы хотите открыть 'popup.html', вы, вероятно, не должны вызывать' window.open ("intro/index.html") '. –

+0

@ DanielBeck На самом деле, я хочу открыть их оба в одно и то же время. – Mia

+1

Где находится код, который должен открыть 'popup.html'? –

ответ

0

Хотя ответ Марка Гуйселина превосходный, может быть полезно знать, как открыть вкладку, не закрывая всплывающее окно.

Вы можете открыть вкладку в фоновом режиме, чтобы она не закрывала ваше всплывающее окно.

chrome.tabs.create({ 
    url: chrome.runtime.getURL("intro/index.html"), 
    active: false 
}); 

В общем, вы должны избегать использования window.open в расширениях и использовать chrome.tabs и chrome.windows API вместо.

+0

Это сработало, но оно открывает вкладку в фоновом режиме, есть ли способ открыть на переднем плане? – Mia

3

метод, который вы используете в силе и должны работать, но вы должны, вероятно, просто использовать onInstalled событие для последовательности:

chrome.runtime.onInstalled.addListener(function(info){ 
    if(info.reason == "install"){ 
     console.log("Installed!"); 
    }else if(info.reason == "update"){ 
     console.log("Updated!"); 
    } 
}); 

Он не требует новых разрешений, и будет держать ваш установить код ясно отделены от остальной части вашего кода.

Смежные вопросы