2016-11-13 1 views
0

Ich entwickle eine Erweiterung und ich möchte die Benutzer wählen lassen, wenn sie die browserAction-Schaltfläche eine HTML-Seite im Popup öffnen oder in einem neuen Tab öffnen möchten.Chrome-Erweiterung, Browser browserAction onclick

ersten Fall (in manifest):

"browser_action": { 
    "default_icon": { 
     "19": "data/button.png" 
    }, 
    "default_page": "./popup/popup.html" 
} 

zweiten Fall (in index.js):

chrome.browserAction.onClicked.addListener(function() { window.open('../popup/popup.html', ...); }); 

Gibt es eine Möglichkeit zwischen diesen beiden Fällen im Hintergrund Skript zu wechseln?

Antwort

1

Ja, Sie können chrome.browserAction.setPopup() verwenden. Wenn Sie das Popup '' gesetzt ist, wird kein Popup angezeigt:

chrome.browserAction.setPopup({popup: ''}); 

Sie dann das Popup zurück auf eine HTML-Seite festlegen können, wenn Sie wollen, um das Popup:

chrome.browserAction.setPopup({popup: '/myPopup.html'}); 

Eine bequeme Sache ist, dass Wenn ein Popup angezeigt wird, wird das Ereignis browserAction nicht ausgelöst. Daher wird die Registerkarte nicht geöffnet. Dies schaltet zwischen den beiden um, indem entweder browserAction.setPopup() auf '' gesetzt wird oder nicht.