How can i set loop iMacros by Javascript?

2019-02-27 09:05发布

问题:

1) I can't add set loop imacros by javascript, How can i add it ?

var macro;
    macro =  "CODE:";
    macro +=  "VERSION BUILD=8011895" + "\n"; 
    macro +=  "TAB T=1" + "\n"; 
    macro +=  "SET !ERRORIGNORE YES" + "\n"; 
    macro +=  "SET !EXTRACT_TEST_POPUP NO" + "\n"; 
    macro +=  "SET !TIMEOUT 3" + "\n"; 
    macro +=  "SET !EXTRACT NULL" + "\n"; 
    //macro +=  "SET !LOOP 1" + "\n"; 
    macro +=  "TAG POS={{loop}} TYPE=A ATTR=CLASS:twitter-timeline-link EXTRACT=TXT" + "\n"; 
    macro +=  "SAVEAS TYPE=EXTRACT FOLDER=* FILE=twitter.csv" + "\n"; 
    var extractedtext=iimGetLastExtract();
    iimPlay(macro);

2) How can i use that code on imacros without javascript ? ( on iim)

var extractedtext=iimGetLastExtract(); 

回答1:

Specify your imacros code as a javscript string and prefix with CODE:

var urls = ['http://google.com', 'http://yahoo.com'];

for (var i in urls) {
  var url = urls[i];
  var returnCode = iimPlay('CODE: URL GOTO='+url);
}


回答2:

You have to write macro like this

var macro;

macro ="CODE:";
macro +="TAG POS={{i}} TYPE=SPAN ATTR=TITLE:link"+"\n";

///The triggering part

for (var i=1;i<10;i++)
{

iimSet("i",i)
iimPlay(macro)
}

Since you example was kind of unclear I have to say that this command might not work.

TAG POS={{i}} TYPE=SPAN ATTR=TITLE:link

Instead of word link replace it with * which means any character and then it can work

TAG POS={{i}} TYPE=SPAN ATTR=TITLE:*

Also in the macro you can write like this

TAG POS={{variable}} TYPE=SPAN ATTR=TITLE:*

But in the iimSet part it has be like this.

iimSet("variable",i)


回答3:

1) to loop javascript code you can add for statement like this:

for (i=1;i<=n;i++){
iimPlay(macro);
}

where n is number of loops to perform

2) in iim you do not need it as !extract parameter already has extracted value



回答4:

I understand how to make imacros for firefox loop using javascript, but the question is how does the variable carry over into the called macro here:

iimPlay(macro);

the first time let's say you want to click on link pos=1

then 2nd time on link pos=2

if your called iim script is:

TAG POS=1 TYPE=SPAN ATTR=TITLE:link

how will the script know how to look at position 2 (POS=2) the next time and POS=3 the subsquent time?

is it correct to type the following?

TAG POS=i TYPE=SPAN ATTR=TITLE:link