iMacros的传递变量从JavaScript到宏观

问题描述:

问题:为什么不工作我在从的.js传递变量到IIM宏文件的尝试?iMacros的传递变量从JavaScript到宏观

我有以下两个文件:

test.js

for (var1 = 100; var1 <= 200; var1 = var1 + 50) 
    { 
    iimSet("var1",var1); 
    iimPlay("test2"); 
    } 

test2.iim

VERSION BUILD=9030808 RECORDER=FX 
TAB T=1 
SET !TIMEOUT_PAGE 1 
SET !ERRORIGNORE YES 

URL GOTO=javascript:document.getElementsByClassName("scroll_element")[0].scrollBy(0,var1) 
WAIT SECONDS=3 

什么脚本应该做的: 在前面的例子,我是试图拨打test.js,然后调用test2.iim几次在特定网站上向下滚动。

在文件 test2.iim

,我尝试使用VAR1在倒数第二线向下某一个元素在一个特定的div滚动。这是行不通的。但是,如果我有像这样更换VAR1

URL GOTO=javascript:document.getElementsByClassName("scroll_element")[0].scrollBy(0,100) 

它的工作,以及100像素向下滚动。这使我相信,VAR1没有通过出于某种原因,虽然我虽然我实施

iimSet("var1",var1); 

是适当的。

有谁知道我做错了什么?

首先,使用“var1”不是一个好主意,因为它与内部!var1变量名称几乎相同。我不确定这是否会引起问题,但最好避免。但主要问题是缺少{{...}}。例如,如果使用“myvar1”作为变量,则需要在宏内使用{{myvar1}}:

URL GOTO = javascript:document.getElementsByClassName(“scroll_element”)[0] .scrollBy(0 ,{{myvar1}}

+0

漂亮!改变了变量名称并添加了“{{...}}”,并解决了问题。我可以问为什么需要为我个人的理解而设置一个{{...}}?这只是一个imacros规则,用于识别通过'iimSet()'函数传递的变量吗? – Webeng

+0

是的,这是iMacros知道它是可变的。 – timfredo

+0

感谢兄弟,非常感谢 – Webeng