В настоящее время нет «аккуратного» или официального способа справиться с обоими. Вы можете просто сделать либо. Но есть некоторые обходные пути, которые сделал какой-то продукт расширения Google.
Прежде всего, установите его, чтобы показать всплывающее окно. А во всплывающем окне pageAction вы можете иметь код инициализации, похожий на этот:
Всплывающее окно действия страницы:
function init() {
if (getClickBehaviour() == 'popup')
handlePopup();
else
openPage();
}
function getClickBehaviour() {
return localStorage['CLICK_BEHAVIOR'] || 'popup';
}
function openPage() {
chrome.tabs.create({url: 'http://google.ca'});
window.close();
});
}
init();
Затем вы можете позволить свои параметры, установить поведение щелчка. Если вы хотите различное поведение при каждом нажатии, вы можете сделать это тоже.
Как вы заметили, мы сразу же закрываем всплывающее окно для поведения по умолчанию, которое мы не хотим показывать во всплывающем окне. В настоящее время это единственный способ реализовать другое поведение.