0

作成されたタブの各インスタンスに対して特定の配列要素を解析する必要があるサファリ拡張機能に取り組んでいます。ただし、各タブが挿入されたスクリプトで動作する異なる要素を受け取るように、配列を反復処理できる必要があります。これを行うために受信および送信メッセージ構造を使用していますが、配列要素を反復処理する方法を一生理解できません。インデックスとして機能する配列を作成し、メッセージ レスポンダー関数が起動されるたびにインクリメントしようとしましたが、これは何らかの理由で機能しませんでした。また、要素が配列から引き出されるたびに配列を単純にシフトしようとしましたが、タブが作成されると関数があまりにも早く起動されるため、これはうまくいかなかったと思います。

挿入された各スクリプト インスタンスである種の列挙関数を使用してタブ番号を把握し、それをグローバル ページへのメッセージと共に解析して、配列内の適切な要素を返すことができるようにしたいと考えています。

あらゆる助けをありがとう。

4

1 に答える 1

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);
    }
}
于 2011-11-15T15:56:27.693 に答える