hidemaru.setTimeout(Ver9.35対応版)
目次−
JavaScript対応−
Hidemaruオブジェクト−
setTimeout
setTimeoutメソッドは、一定時間経過後に1回だけ実行する関数を指定します。
[非同期]
clearTimeoutメソッドは、解除します。(後述)
例 |
js{
id = hidemaru.setTimeout(function(){},1000);
}
|
- パラメータ1(関数)
-
関数を指定します。
- パラメータ2(数値型)
-
時間をミリ秒単位で指定します。
- パラメータ3(任意の型、省略可能)(V9.25以降)
-
関数が呼ばれるときのパラメータになります。
- 返り値(数値型)
-
固有のIDが返ります。
WebView2では、ブラウザとしてのwindow.setTimeoutがありますが、hidemaru.setTimeoutはスクリプトエンジンを問わず使うことができます。
JScriptでも使えます。
ブラウザとしてのwindow.setTimeoutは、フォーカスが無いときは間隔が広まったり休止したり、必ずしも時間通りに来るとは限りらない仕様となっているようです。
特に秀丸マクロ内のWebView2のブラウザ部分は見えないので、window.setTimeoutはほぼ役に立たないと思ってもらったほうがいいです。
秀丸マクロのグローバルのsetTimeoutはありません。グローバルでsetTimeoutを書くと、WebView2ではwindow.setTimeoutになります。
どの場面でも、hidemaru.setTimeoutと書けば大丈夫です。
例 |
debuginfo(2);
jsmode "WebView2";
js{
id = hidemaru.setTimeout(function(){console.log(1);},1000);
id = window.setTimeout(function(){console.log(2);},1000);
id = setTimeout(function(){console.log(3);},1000);
}
jsmode "JScript";
js{
id = hidemaru.setTimeout(function(){console.log(4);},1000);
}
endmacro;
|
clearTimeoutは、setTimeoutの返り値で得られたIDを指定して、実行されるのを解除します。既に実行された後では効果はありません。
例 |
js{
id = hidemaru.setTimeout(function(){},1000);
hidemaru.clearTimeout(id);
}
|
hidemaru.setTimeout, hidemaru.setIntervalは、Windowsのタイマの精度に依存しています。
一般的に15〜16msが一番小さいです。