2016-06-05 13 views
0

Derzeit versuche ich, Injektionen eines bestimmten Skripts für eine variable Anzahl von Zeiten in Reihenfolge (synchron) durchzuführen. Einfach ausgedrückt, ich möchte Skript xyz.js für Z mal injizieren können.For Schleife von synchronen Javascript-Injektionen

Ich habe derzeit den Code, um das Skript eine fest codierte Anzahl von Malen zu injizieren. Dieser Code sieht aus wie solche:

chrome.tabs.executeScript(tab.ib,{file: "inject.js"}, function(resp){ 
    chrome.tabs.executeScript(tab.ib,{file: "inject.js"}, function(resp){ 
    }); 
}); 

Mit dieser Methode habe ich einfach Nest die Injektionen in die Callback-Funktionen der vorherigen Injektionen. Diese Methode des synchronen Aufrufs mehrerer Injektionen muss jedoch fest codiert werden. Daher kann ich diese synchrone Injektionssequenz nicht beliebig oft durchführen.

Wie kann ich meinen Code ändern, damit ich den Code eine variable Anzahl von Malen synchron einspeisen kann?

Hinweis: Diese Injektionen injizieren dieselbe Datei, da der Inhalt abhängig von den Bedingungen der Webseite unterschiedlich ausgeführt wird. Beachten Sie auch, dass es synchron sein muss, da das Verhalten der Datei von der vorherigen Dateiinjektion abhängt. Beachten Sie schließlich, dass es nicht einfach zu einer großen Datei kombiniert werden kann, weil das Programm läuft.

Antwort

1

Sie könnten Rekursion dafür verwenden.

(function loop(n) { 
    if(n > 1) chrome.tabs.executeScript(tab.ib,{file: "inject.js"}, function(resp){ 
    loop(n - 1); 
    }); 
})(10);