передать переменную в chrome.tabs.onUpdated.addListener() — расширение Chrome

#javascript #google-chrome-extension #global-variables

#javascript #google-chrome-расширение #глобальные переменные

Вопрос:

Мне нужно получить доступ к вкладке.Идентификатор окна, созданного моим расширением Chrome.

Вот код, который я использую для создания окна:

     chrome.windows.create({
        url: fullUrl,
        width: w,
        height: h,
        type: 'normal'
        }, function() {
            chrome.windows.getCurrent(function(window) {
                chrome.tabs.getSelected(window.id,
                function (response){
                    var ourWindow = response.id
                    alert('created a window with a tab id of: '   ourWindow);
                 });
            });             
    });
  

И код, в котором я хотел бы иметь доступ к той переменной ‘ourWindow’, которую мы ранее установили:

 chrome.tabs.onUpdated.addListener(function(tabId, changeInfo, tab) {
     if(changeInfo.status == "loading") {
        if(tabId == ourWindow) {
            alert('Holy smokes, this is the window we created!');
        }
     }
});
  

Кажется, я не могу получить доступ к переменной, поскольку она была создана вне onUpdated.addListener . Есть идеи?

Ответ №1:

Просто переместите эту переменную в глобальное пространство переменных:

 var ourWindow = null;
...
chrome.tabs.getSelected(window.id,
function (response){
    ourWindow = response.id;
});