setTimeoutメソッドをVBScriptのラッパにしてJavaScript内で実行する
IEではsetTimeoutメソッドをVBScriptのラッパにしてJavaScript内で実行するということが出来るのだと昨日教えてもらって驚きました。(へぇ×23)…IE8でも出来るのかしらん?教えてプリーズな勢いであります。
あぁ、そんなことが出来るのなら、VBScriptでMsgBoxを使って「しいたけ」を表示すること、をラッピングしてJavaScript内で記述できます。だから何?と言われそうですが自分としては驚きもののきさんしょのき。
以下のように複数のステートメントからなるVBScriptのコードを実行したいと構想をたてたとします。
REM VBScriptな記述strC = strA & strB
MsgBox(strC)
改行については\u000D\u000A として、上の複数のステートメントをJavaScript(JScript)に食わせるための文字列として表現します。以下。
//食わせる文字列'strC = strA & strB\u000D\u000AMsgBox(strC)'
上の文字列をsetTimeoutメソッドをラッパにしてJScriptに食わせます。
//JScriptだよvar strA = 'aaa';
var strB = 'bbb';
var strC = 'ccc';
iTimerID = window.setTimeout('strC = strA & strB\u000D\u000AMsgBox(strC)', 1000 , 'VBScript')
なお、VBScriptの実行結果のstrCを正式にJavaScript側で受け取るためには少々時間を待ったほうがよろしいようです。パラレルっぽい。