@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
Ответ написан
Ваш ответ на вопрос

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

Похожие вопросы