imacros将变量从javascript传递给宏

时间:2016-12-31 18:23:29

标签: imacros

问题:为什么我尝试将变量从 .js 传递到 iim宏文件无法正常工作?

我有以下两个文件:

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 替换为 100 ,就像这样:

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

它确实有效,向下滚动100个像素。这让我相信 var1 由于某种原因没有通过,虽然我虽然是我的实现

iimSet("var1",var1);

是合适的。

有谁知道我做错了什么?

1 个答案:

答案 0 :(得分:1)

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

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