当我使用变量来表示帧编号

时间:2017-06-14 06:33:19

标签: javascript imacros

JS循环中第15行的宏语句似乎没有注册到extract语句。当它返回带有所有三个帧号的#EANF#时,循环在17处循环结束并传递给POS_LOOP。 但是,如果我注释掉第11行(//),取消注释第10行,则将循环开始设置为16(第6行)并结束为16(第19行)。换句话说,通过传递for循环并强制帧到16号,提取返回$ 449,000(意味着我有正确的帧号),将帧号传递给POST_LOOP宏。 POST_LOOP继续从页面中提取所需的所有信息。 有一段时间我收到此错误消息“BadParameter:预期F =作为参数1,第2行(错误代码:-911)”。 所以我添加了第6行和第16行来强制一个数字并将!errorignore设置为YES。 我强制循环将所有变量打印到屏幕以及POST_LOOP中的PROMPTS。所有警报显示循环通过15-17循环,Frame_valid包含#EANF#。 PRE_LOOP将我带到网页,JS循环找到“工作”帧号,然后将其传递给POS_LOOP宏以进行提取。 Soooo为什么当我在语句“FRAME F = {{Frame_nb}}”+“\ n”中使用变量时它不起作用; ?

iimPlay('++AATEST_PRE_LOOP.iim');
//declarations
var framenumber;
var retcode;
var Frame_nb;
var fnb=(15*1);

var find_number =  "CODE:";
find_number += "SET !ERRORIGNORE YES" + "\n";
find_number += "SET !EXTRACT NULL" + "\n";
//find_number +=  "FRAME F=16" + "\n";
find_number +=  "FRAME F={{Frame_nb}}" + "\n";
find_number +=  "TAG POS=1 TYPE=TD ATTR=TXT:High" + "\n";
find_number +=  "TAG POS=R1 TYPE=TD ATTR=ID:hiLP EXTRACT=TXT" + "\n"; 
for(; fnb <= 17; fnb++){
    alert(fnb);
    var Frame_nb = eval(fnb*1);
    retcode=iimPlay(find_number);
   var frame_valid = iimGetLastExtract(1);
   alert(iimGetLastExtract(1));
   alert(Frame_nb);
   alert(frame_valid);
   iimSet("framenumber",fnb);
    iimSet("RetCode",retcode);
    iimSet("extract",frame_valid);

   //if extract was frame number than save frame number and play rest of   macro

 if (frame_valid !== "#EANF#")
     {
     var framenumber=fnb;
     break;
 }

 }
iimPlay('++AATEST_POST_LOOP.iim');

由于

0 个答案:

没有答案