Расширение Safari Получить позицию вкладки или идентификатор - PullRequest
0 голосов
/ 15 ноября 2011

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

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

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

1 Ответ

2 голосов
/ 15 ноября 2011

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

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);
    }
}
...