@habrdima

Как очистить запрос browserAction?

При повторном нажатии код вызывает алерт 2 раза, при следующем нажатии 3 раза и т.д
нужно что бы только один раз, как быть? вот код

chrome.browserAction.onClicked.addListener(function() {
  chrome.tabs.executeScript({
    file: 'sc.js'
  });
 chrome.tabs.query({url: "*://*.google.ru/*", currentWindow: true}, function(tabs) {
var port = chrome.tabs.connect(tabs[0].id);
 port.postMessage("gshad");
})
 });


chrome.runtime.onConnect.addListener(function(port) {
  
  port.onMessage.addListener(function(msg) {
alert(msg)
  });
});
  • Вопрос задан
  • 294 просмотра
Пригласить эксперта
Ответы на вопрос 1
@mayorovp
Проблема не в browserAction, а в runtime.onConnect. Вы каждый раз добавляете новый обработчик - но старые обработчики-то никуда не деваются!

Могу посоветовать вам внедрять свой content script при загрузке страницы - тем более, вы же знаете те url, куда вам надо внедряться. Это поможет избежать повторных вызовов executeScript
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы