問題が発生しました。ClickSimMove func によって公開された ClickSimClick 関数の引数にどのように与えることができるかわかりません (2 つの値を持つ配列を返します)。
以下のコードは、setTimeout で crd が未定義であることを示しています。
var crd = plugin().ClickSimMove();
setTimeout("plugin().ClickSimClick(crd[0], crd[1])", 1000);
問題が発生しました。ClickSimMove func によって公開された ClickSimClick 関数の引数にどのように与えることができるかわかりません (2 つの値を持つ配列を返します)。
以下のコードは、setTimeout で crd が未定義であることを示しています。
var crd = plugin().ClickSimMove();
setTimeout("plugin().ClickSimClick(crd[0], crd[1])", 1000);
文字列ではなく、関数を渡します。
var crd = plugin().ClickSimMove();
setTimeout(function() {
plugin().ClickSimClick(crd[0], crd[1]);
}, 1000);
文字列を渡すとeval
、グローバル スコープでの場合と同様に評価され、ローカル変数へのすべてのアクセスが失われます。無名関数を使用すると、スコープ内の任意の変数を参照できます。
var crd = plugin().ClickSimMove();
setTimeout(function(){
plugin().ClickSimClick(crd[0], crd[1]);
}, 1e3);
setTimeout
可能な限り、文字列を/に送信することは避けてください --setInterval
代わりに無名関数を使用してください。特に、変数を連結してその文字列を作成している場合は、何らかのインジェクションまたは不正な形式のコンポーネントですぐに問題が発生する可能性があります。