Safari扩展获取选项卡位置或标识符

时间:2011-11-15 15:34:08

标签: javascript safari messages enumerator

我正在开发一个safari扩展,我需要将特定的数组元素解析为创建的选项卡的每个实例。但是,我需要能够遍历数组,以便每个选项卡接收一个不同的元素,以便在注入的脚本中使用。我使用接收和发送消息结构来做到这一点,但我不能为我的生活弄清楚如何遍历数组元素。我尝试创建一个充当索引的数组,然后在每次触发消息响应函数时递增它,但是由于某种原因这不起作用。我也尝试在每次从中拉出一个元素时简单地移动数组,但我相信这不起作用,因为在创建选项卡时函数启动太快。

我希望能够在每个注入的脚本实例上使用某种枚举器函数来计算选项卡号,然后将该消息解析为全局页面以返回数组中的正确元素。

非常感谢任何帮助。

1 个答案:

答案 0 :(得分:2)

我认为您正在尝试遍历所有窗口中的所有标签 - 请说明您遇到问题的阵列。为了遍历所有这些,您应该能够这样做,首先通过应用程序中的窗口,然后通过选项卡:

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