[英]How to use Goto statement in javascript Imacros
我有从我的php脚本中提取文本/数据的Imacros代码,我的php脚本运行良好,但它通常会出错,因为它是通过API从其他人那里获取数据。
所以我需要检查一下,在我的Imacros运行之前,我的php脚本是否已完全加载。 所以我需要在javaScript中使用它,因为使用“if-else语句”(Imacros不支持这个),我在Javascript中非常新,希望有人可以修复我的javascript代码,这里是:
var macro;
macro = "CODE:";
macro +="SET !EXTRACT_TEST_POPUP NO"+"\n";
macro +="SET !DATASOURCE MASTER-ID.txt"+"\n";
macro +="SET !DATASOURCE_COLUMNS 2"+"\n";
macro +="SET !DATASOURCE_LINE {{i}}"+"\n";
macro +="TAB T=1"+"\n";
macro +="URL GOTO=http://localhost/DataGenerator.php?mid={{!COL1}}"+"\n";
macro +="WAIT SECONDS=0.5"+"\n";
macro +="TAG POS=1 TYPE=B ATTR=* EXTRACT=TXT"+"\n";
[lbl] startcheck: //Re-Check Point
for(i=1;i<51;i++){
iimSet("i",i);
var text=null;
var retvalue = iimPlay(macro);
var text = iimGetLastExtract(1);
if(text=="Warning") // if my php Script Fail to load , then . .
{
alert("TEXT FOUND"); //for testing purpose
alert(text); //for testing purpose
self.location.reload()'; // this is where i want to reload my webpage
[lbl] repeat: goto startcheck; // Jump to Re-Check point
}
else{
alert("TEXT NOT FOUND"); //for testing purpose
iimPlay("my-imacros.iim")
}
}
希望有人可以修复我的javascript代码,“跳转到重新检查点”并在Javascript中重新加载,最糟糕的是我将使用“iimPlay(”reload.iim“)”重新加载页面
OP写道:
我自己修好了。 解决方案是:
macro +="WAIT SECONDS=0.5"+"\n";
macro +="TAG POS=1 TYPE=B ATTR=* EXTRACT=TXT"+"\n";
var macrorefresh;
macrorefresh = "CODE:";
macrorefresh +="REFRESH"+"\n";
macrorefresh +="WAIT SECONDS=0.5"+"\n";
for(i=1;i<52;i++){
iimSet("i",i);
var text=null;
var retvalue = iimPlay(macro);
var text = iimGetLastExtract(1);
startcheck:
while(text=="Warning") {
alert(text); //for testing purpose
iimPlay(macrorefresh);
continue startcheck;
}
alert("TEXT NOT FOUND"); //for testing purpose
iimPlay("my-imacros.iim")
}
它的工作原理,谢谢大家试图帮助我的Stackoverflow
这样工作吗?
例:
checkpoint:
ret=iimPlay("something.iim");
if(ret<0)
{
break checkpoint;
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.