Расширение Safari Получить позицию вкладки или идентификатор

Я работаю над расширением сафари, в котором мне нужно проанализировать определенный элемент массива для каждого экземпляра созданной вкладки. Мне, однако, нужно иметь возможность перебирать массив, чтобы каждая вкладка получала отдельный элемент для работы с внедренным скриптом. Для этого я использовал структуру получения и отправки сообщений, но не могу понять, как перебирать элементы массива. Я попытался создать массив, который будет действовать как индекс, а затем увеличивать его каждый раз, когда вызывается функция автоответчика, но по какой-то причине это не сработало. Я также пытался просто сдвигать массив каждый раз, когда из него извлекался элемент, но я считаю, что это не сработало, потому что функция запускается слишком быстро при создании вкладок.

Я хочу иметь возможность использовать какую-то функцию перечисления на каждом внедренном экземпляре скрипта, чтобы выяснить номер вкладки, а затем проанализировать это с сообщением на глобальную страницу, чтобы вернуть соответствующий элемент в массиве.

Большое спасибо за любую помощь.

1 ответ

Решение

Я думаю, что вы пытаетесь перебрать все вкладки во всех окнах - уточните, с каким массивом у вас возникли проблемы. Чтобы перебрать все из них, вы должны сделать это следующим образом: сначала через окна в приложении, а затем через вкладки:

var bWindows = safari.application.browserWindows;
for(i=0;i<bWindows.length;i++){
    var tabs = bWindows[i].tabs;
    for(j=0;j<tabs.length;j++){
         var tab = tabs[j];
         //Do something in each tab.
         tab.page.dispatchMessage('message', data);
    }
}
Другие вопросы по тегам