iMacros iimPlay javascript

时间:2013-11-05 12:26:10

标签: firefox if-statement imacros

我创建了两个播放不同iimPlay函数的变量。但是,代码总是执行第一个if语句并忽略第二个语句。

Main.js

var ReturnCode = iimPlay("win.iim");  
var returncode2 = iimPlay("lose.iim"); //
if (ReturnCode = 1) {         *//when returncode =1 means complete execute*
iimPlay("reset.iim");
} 

if (returncode2 = 1 ) {
iimPlay("double.iim");
}

Win.iim

IMAGESEARCH POS=1 IMAGE=C:\win.png CONFIDENCE=65 
  无论匹配与否,

imagesearch将始终执行

Lose.iim

IMAGESEARCH POS=1 IMAGE=C:\lose.png CONFIDENCE=65  
  无论匹配与否,

imagesearch将始终执行

HTML标记

<div id="game-result" class="balance-change fail">
<span id="result-text">
LOST
</span> </div>

问题:每当iimPlay(“win.iim”)检测到输赢图像时,它仍会执行第一个语句,因为丢失图像应该执行第二个if语句。

2 个答案:

答案 0 :(得分:1)

使用

代替使用图片搜索
TAG POS=1 TYPE=DIV ATTR=CLASS:image_you_are_looking_for CONTENT=EVENT:MOUSEOVER


TAG POS=1 TYPE=DIV  ATTR=CLASS:second_image_you_are_looking_for CONTENT=EVENT:MOUSEOVER

如果不存在,这种方式将返回错误代码。

这也是错误。

if (returncode2 = 1 ) { }

您将值1设置为returncode2而不将其与1进行比较。正确的是

if (returncode2 == 1 ) { }

更好的是:

if (returncode2 > 0 ) { }

其他返回码相同。修复这些并重试。

答案 1 :(得分:0)

您需要始终小心EQUAL号。在Javascript for comparasion中,您使用=====。您的代码会执行归因,并始终为TRUE;这就是它总是被执行的原因。有关javascript相等的详细信息,请参阅this post