2016-10-29 17 views
1

Imacrosで文字列配列を作成しようとしていて、文字列値を取得してvar 2に格納しようとすると、それぞれ異なる(ランダム値)時間。iMacrosのEVALステートメントを使用してJavascript配列から文字列を取得

が、私はこれを書くとき、私は2行目に誤りいる:

SET !VAR1 EVAL("var config = ['myConfigParameter1', '500', '4.1234213', 'http://an.url/'];config.join(';')") 
SET !VAR2 EVAL("var config = '{{!VAR2}}'.split(';');config[0]") 

IamはimacrosのFirefoxでそれを実行しようとすると、これを実行するには、それが明記二行目にエラーを与える:

秒線:7(エラーコード:-1001)

このチュートリアルでは、imacrosの配列から文字列値を取得しました。 http://www.iteamwork.de/imacros-scripting-use-more-than-x-variables-in-macro-script.html

どうしたのですか?

どのように私は私のimacrosコードで使用できるようにvar2にランダムな文字列とストアを取得できますか?

私はまた別のjsファイルを作成することでcore JSのやり方を試みましたが、それはどちらも失敗しました。

UPDATE:ここ

は完全なコードです:

VERSION BUILD=9030808 RECORDER=FX 
SET !VAR1 EVAL("var config = ['myConfigParameter1', '500', '4.1234213', 'http://an.url/'];config.join(';')") 
SET !VAR2 EVAL("var config = '{{!VAR2}}'.split(';');config[0]") 
TAB T=1 
wait seconds = 7 
'TAG POS=1 TYPE=TEXTAREA ATTR=ID:chatmsg CONTENT=TestMessge 
TAG POS=1 TYPE=TEXTAREA ATTR=ID:chatmsg CONTENT={{!VAR2}} 
TAG POS=1 TYPE=INPUT:BUTTON ATTR=ID:sendbtn 
wait seconds = 2 
ONDIALOG POS=1 BUTTON=OK CONTENT= 
wait seconds = 1 
TAG POS=1 TYPE=INPUT:BUTTON ATTR=ID:disconnectbtn 
ONDIALOG POS=1 BUTTON=OK CONTENT= 
wait seconds = 2 
ONDIALOG POS=1 BUTTON=OK CONTENT= 
wait seconds = 1 
TAG POS=1 TYPE=INPUT:BUTTON ATTR=* 
ONDIALOG POS=1 BUTTON=OK CONTENT= 

そしてここでは、私のランダムなラインです:

SET randomNumber EVAL("var min = 0; var max = 4; var randomNumber = Math.floor(Math.random() * (max - min + 1)) + min; randomNumber;") 
SET !VAR2 EVAL("var config = '{{!VAR1}}'.split(';');config[{{randomNumber }]") 

乱数が正常に動作しているが、私は使用方法を知りません配列内のrandomnumb変数を使用してランダムな文字列を取得します。問題は2行目になりました。

+0

私はあなたのコードのどこにでも定義されている "s"は表示されません。それはあなたのスクリプトの完全なコードですか?ちょうどその2行?そうでない場合は、残りを含めてください。 – jack

+0

@jack私は完全なコードを追加しました。私のコードは3行目をコメントアウトすると完璧に実行されます。問題はその行にあります – Faizan

+0

問題が現在何かを明確にすることはできますか?エラーメッセージが表示されていますが、実際に動作していることを確認するために、randomNumberの値がどのように評価されているかを確認する方法がありますか? (console.logやスクリーンに何かを印刷していますか?) – jack

答えて

1
SET !VAR2 EVAL("var config = '{{!VAR2}}'.split(';');config[0]") 

あなたが設定した配列varに参加することを意味すると思いますか?したがって、それは次のようになります:

SET !VAR2 EVAL("var config = '{{!VAR1}}'.split(';');config[0]") 
+0

完璧な男、これはうまくいきます!乱数ロジックを追加して、ループが動作するたびに配列からランダムな文字列を取得するようにしてください。私は最高のようにUR答えを与えるだろう:)私は、どこに私がimacrosを学ぶことができる場所はありますか? – Faizan

+0

別のJSファイルでimacrosを使用する方法を知っていますか?どんなデモ? – Faizan

+0

iMacrosで実際に作業していないのですが、JSの問題を認識しました。しかし、javascriptのドキュメンテーションの場合、MDNはとても見やすい場所です。たとえば、(あなたの "config"のように)[javascript配列のページはこちら](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array)です。 – jack

関連する問題