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}})
漂亮!改变了变量名称并添加了“{{...}}”,并解决了问题。我可以问为什么需要为我个人的理解而设置一个{{...}}?这只是一个imacros规则,用于识别通过'iimSet()'函数传递的变量吗? – Webeng
是的,这是iMacros知道它是可变的。 – timfredo
感谢兄弟,非常感谢 – Webeng