2016-12-31 64 views
1

問題:爲什麼不工作我在從的.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); 

是適當的。

有誰知道我做錯了什麼?

回答

1

首先,使用「var1」不是一個好主意,因爲它與內部!var1變量名稱幾乎相同。我不確定這是否會引起問題,但最好避免。但主要問題是缺少{{...}}。例如,如果使用「myvar1」作爲變量,則需要在宏內使用{{myvar1}}:

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

+0

漂亮!改變了變量名稱並添加了「{{...}}」,並解決了問題。我可以問爲什麼需要爲我個人的理解而設置一個{{...}}?這只是一個imacros規則,用於識別通過'iimSet()'函數傳遞的變量嗎? – Webeng

+0

是的,這是iMacros知道它是可變的。 – timfredo

+0

感謝兄弟,非常感謝 – Webeng