Расширение 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);
}
}