对于同步Javascript注入循环

时间:2016-06-05 02:52:18

标签: javascript google-chrome-extension

目前,我正在尝试按顺序(同步)执行一定数量的脚本注入。简而言之,我希望能够为Z次数注入脚本xyz.js。

我目前有代码将脚本注入硬编码的次数。此代码如下所示:

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

使用这种方法,我只是将注射嵌套到先前注射的回调函数中。但是,这种同步调用多次进样的方法必须进行硬编码。因此,我无法执行此同步注入序列的次数。

如何更改代码以允许我以可变的次数同步注入代码?

注意:这些注入是注入相同的文件,因为它根据网页的条件执行不同的内容。另请注意,它必须是同步的,因为文件的行为取决于先前的文件注入。最后,请注意,由于程序的运行方式,它不能简单地组合成一个大文件。

1 个答案:

答案 0 :(得分:1)

你可以使用递归。

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