2011-11-15 14 views
0

私は作成されたタブの各インスタンスに特定の配列要素を解析する必要があるサファリ拡張機能を開発中です。しかし、私は、各タブが注入されたスクリプトで動作する別の要素を受け取れるように、配列を繰り返し処理できる必要があります。私は受信と送信のメッセージ構造を使用してこれを行うが、私は私の人生のために配列要素を反復する方法を理解することはできません。私は、インデックスとして機能する配列を作成し、メッセージレスポンダ関数が呼び出されるたびにインクリメントしてみましたが、何らかの理由でこれが機能しませんでした。私はまた、要素がそれから引っ張られるたびに単純に配列をシフトしようとしましたが、タブが作成されると関数が速すぎて起動するので、これはうまくいかないと思います。Safari Extensionタブの位置または識別子を取得

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

ありがとうございました。

+0

あなたが今持っているコードの一部を投稿することができます:それらのすべてを反復処理するためには、あなたがしてタブを、最初のアプリケーションのウィンドウを通じて、このようにそれを行うことができるはず我々はそれを確認することができますか? –

+0

さらに、アクティブなウィンドウのタブ、またはすべてのウィンドウのすべてのタブを反復しようとしていますか? –

答えて

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

こんにちはScott、 速い返答をありがとう。私は、グローバルページを介して開いている各タブで、挿入されたスクリプト内から反復する方法を見つけようとしています。このコードは、注入されたスクリプトで動作し、グローバルページにIDまたはその場所からのメッセージを送り出すことができますか? –

+0

いいえ、私はあなたがいろいろな理由でそうすることはできないと思います。あなたがしなければならないことは、拡張機能にメッセージを送り返し、それから他のタブと通信することです。 –

+0

助けてくれてありがとう! –

関連する問題