2012-04-09 3 views
4

Я пишу расширение Chrome, которое динамически изменяет содержимое всплывающего окна на основе текущего URL-адреса.Использование chrome.browserAction.setPopup за вкладку

я делаю что-то подобное в background.js, который работает отлично:

if(domains.contains(request.url)){ 
    chrome.browserAction.setPopup({ 
     popup: "tracking.html" 
    }); 
}else{ 
    chrome.browserAction.setPopup({ 
     popup: "nottracking.html" 
    }); 
} 

Проблема заключается в том, что если вкладку я включаю содержание всплывающего окна остается неизменным между вкладками. Какова правильная стратегия для решения этой проблемы?

  • Захват на вкладке меняет событие как-то (если такая возможность существует)?
  • Ограничить изменение содержимого всплывающего окна на текущую вкладку? (Я заметил, что есть параметр для chrome.browserAction.setPopup, но документы немного скудные)
  • Что-то еще?

Вся помощь очень ценится!

ответ

4

Вариант 1, связывают приемник событий:

Использование chrome.tabs.onUpdated для прослушивания изменения URI, а затем chrome.browserAction.setPopup с заданной tabId установить всплывающее окно для закладки данного. Например:

chrome.tabs.onUpdated.addListener(function(tabId, changeInfo, tab) { 
    if (domains.contains(tab.url)) { 
     chrome.browserAction.setPopup({ 
      tabId: tabId, 
      popup: 'tracking.html' 
     }); 
    } else { 
     chrome.browserAction.setPopup({ 
      tabId: tabId, 
      popup: 'nottracking.html' 
     }); 
    } 
}); 
0

The setpopup parameter's object now supports a tabId value. Сначала вам нужно ввести числовой идентификатор текущей вкладки. Это не требует дополнительных разрешений.

chrome.tabs.query({currentWindow: true, active: true}, function(tabs){ 
    var url = domains.contains(request.url) ? "tracking.html" : "nottracking.html"; 
    chrome.browserAction.setPopup({ 
     popup: url, 
     tabId: tabs[0].id 
    }); 
}); 
+0

Таким образом, вам может быть интересен document.location.replace ("foo.html"). Но я не уверен, что это будет не для всех вкладок. – user2573802

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