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側で受け取るためには少々時間を待ったほうがよろしいようです。パラレルっぽい。