将.CSV数据导入Javascript并在字符串包含数据时运行execute

将.CSV数据导入Javascript并在字符串包含数据时运行execute,javascript,imacros,Javascript,Imacros,我有几个iMacro文件,它们是用一个javascript文件执行的 非常基本,看起来像这样 iimPlay("GoogleMacro.iim"); iimPlay("IBMMacro.iim"); iimPlay("IMDBMacro.iim"); iimPlay("AltavistaMacro.iim"); iimPlay("GametrailersMacro.iim"); iimPlay("MortalCombatMacro.iim"); iimPlay("WikipediaMacro.i

我有几个iMacro文件,它们是用一个javascript文件执行的

非常基本,看起来像这样

iimPlay("GoogleMacro.iim");
iimPlay("IBMMacro.iim");
iimPlay("IMDBMacro.iim");
iimPlay("AltavistaMacro.iim");
iimPlay("GametrailersMacro.iim");
iimPlay("MortalCombatMacro.iim");
iimPlay("WikipediaMacro.iim");
它被称为playme.js,工作非常好

不过,我不想每次启动.js文件时都运行每个宏

我有一个单独的CSV文件urldata.CSV

按照我所希望的工作方式,在本例中,.js文件将只执行GoogleMacro.iim和AltavistaMacro.iim

我要寻找的规则是:如果COL3的值为null,则不要iimPlay,并检查行中的下一个文件

.JS代码应该是这样工作的(我很清楚这只是胡言乱语):

#Import urldata.csv

Loop whole CSV {
ROW2, If COL3 = null --> go to ROW3
else iimPlay("GoogleMacro.iim");
ROW3, If COL3 = null --> go to ROW4
else iimPlay("IBMMacro.iim");
Etc..
}
我需要弄清楚:

  • 如何将数据从urldata.csv导入/读取到my playme.js。显然,所以我不能用这个
  • 如果第X行的值不是null,如何使函数只使用iiPlay

请帮忙!:)

发出GET请求以获取CSV文件的内容(jQuery可能会有帮助),然后使用CSV解析器(可能)解析文件,然后循环遍历每一行,如果符合您的期望,则调用该函数

jQuery.get('urldata.csv', function(response) {
    var data = parseCSV(response);
    for (var i = 1; i < data.length; i++) {
        var col3 = data[2], url = data[0];
        if (col3 != 'null') {
            var site = getSiteFromUrl(url);
            iimPlay(site + 'Macro.iim');
        }
    }
});

function getSiteFromUrl(url) {
    var site = url.match(/\/\/(.*)\./)[1];
    return site[0].toUpperCase() + site.substr(1);
}
jQuery.get('urldata.csv',函数(响应){
var数据=解析CSV(响应);
对于(变量i=1;i
已解决

将.csv更改为以下内容:

"http://google.com",GoogleMacro,"hello","thank you for searching" 
"http://ibm.com",IBMMacro,"",""
"http://imdb.com",IMDBMacro,"",""
"http://altavista.com,ALTAVISTAMacro","rip","rest in peace, my friend",
"http://gametrailers.com",GAMETRAILERSMacro,"",""
"http://mortalkombat.wikia.com",MORTALKOMBATMacro,"",""
"http://wikipedia.org",WIKIPEDIAMacro,"",""
并且在.js上得到了一些非常好的帮助

var load;
load =  "CODE:";
load +=  "SET !DATASOURCE urldata.csv" + "\n";
load +=  "SET !DATASOURCE_COLUMNS 4" + "\n";
load +=  "SET !DATASOURCE_LINE {{i}}" + "\n";
load +=  "SET !extract {{!col2}}" + "\n";
load +=  "ADD !extract {{!col3}}" + "\n";

var siteName = "";
var siteContent = "";

//Change 4 to the number of websites
for(i=1;i<4;i++) {

  iimSet("i",i);
  // Load data
  iimPlay(load);
  siteName = iimGetLastExtract(1);

  // Check if the website has content
  siteContent = iimGetLastExtract(2);

  if(siteName != "Website" && siteContent != "") {
     iimPlay(siteName + '.iim');
  } else {
  }

 }
var负载;
load=“代码:”;
加载+=“SET!DATASOURCE urldata.csv”+“\n”;
加载+=“设置!数据源\u列4”+“\n”;
load+=“SET!DATASOURCE{{i}}”+“\n”;
load+=“SET!extract{{!col2}}”+“\n”;
加载+=“添加!提取{{!col3}}”+“\n”;
var siteName=“”;
var siteContent=“”;
//将4更改为网站数量

对于(i=1;iSeems,在使用iMacros时将jQuery包含到.JS中是一个问题。发现:不使用jQuery可以解决这个问题吗?
var load;
load =  "CODE:";
load +=  "SET !DATASOURCE urldata.csv" + "\n";
load +=  "SET !DATASOURCE_COLUMNS 4" + "\n";
load +=  "SET !DATASOURCE_LINE {{i}}" + "\n";
load +=  "SET !extract {{!col2}}" + "\n";
load +=  "ADD !extract {{!col3}}" + "\n";

var siteName = "";
var siteContent = "";

//Change 4 to the number of websites
for(i=1;i<4;i++) {

  iimSet("i",i);
  // Load data
  iimPlay(load);
  siteName = iimGetLastExtract(1);

  // Check if the website has content
  siteContent = iimGetLastExtract(2);

  if(siteName != "Website" && siteContent != "") {
     iimPlay(siteName + '.iim');
  } else {
  }

 }