まず、「何で動くVBSCript か」と言う事が重要になって、それによって対処方法が変わっていきます。通常、大きく分けて、VBScript を使うの土俵が3種類あるからです。 1) WSH 2) HTA 3) ASP 1) は、PCのバッチ処理用で、2) は、HTML アプリケーションで IE が PC 用に特化されたようなもので、3) は IIS で動くサーバーサイドスクリプトです。 2) の場合は、元々が IE なので、JavaScript のライブラリを使う事は特に問題は出無いと思います。ただ、VBScript から呼び出すのが目的なので、右から左とは行かないかもしれませんが。 1) の場合、拡張子が .vbs の場合は ASP と同じで、スクリプト要素と言うような外部ライブラリを読み込む手段が無いので、別に関数を作ってやる必要があります。( ASP は、スクリプト要素はありますが、完全に外部のライブラリを読めません ) で、1) の場合で 拡張子が .wsf の場合は、スクリプト要素が使えるので、HTML 上で書くように定義できます。ただ、VBScript の呼び出し位置よりソースの前方で定義する必要があるみたいですが。 つまり、1) の .wsf と 2) の場合はスクリプト要素を使うのですが、IE 専用になるので、language="JavaScript" という属性を付けてやって下さい。さらに、直接呼び出さずに JavaScript のラップ関数を作成し、受け渡しや戻り値は文字列にすると問題が出にくいと思います。 その場合 1) に起こる最も大きな問題 それは、ライブラリが window オブジェクト等の ブラウザ固有のオブジェクトを使っていた場合です。その場合は代替えを用意する必要があります。単に window. の下に変数を定義している場合は、グローバル変数に変更してやると動くかもしれません 関連する記事 VBScript : Twitter API を呼び出して投稿する スクリプト要素が書けない場合 昔、ASP でテストしたのが ASP 用 require 関数 ですが、クライアントの処理(WSH)ならば、Msxml2.ServerXMLHTTP を通常は使います。Msxml2.ServerXMLHTTP では、タイムアウトが設定できますし、昔に比べて最近は問題無く動作します。 Msxml2.XMLHTTP でも動きますが、タイムアウトは変更できませんし、IE の設定でドメイン間のアクセスを可能にしておかないと、クッキーを取り出す必要のあるコミュニーケーシュン処理を行うと、「アクセス拒否」されるので注意して下さい。 あと、さらにこの場合は js ライブラリ側を UTF-8 にしてやると問題が起きません( .js は静的ファイルなので、デフォルトで XMLHTTPからは UTF-8 扱い ) .js の キャラクタセットを、サーバーや cgi で操作するのならば、SHIFT_JIS でも問題は出ませんが、混乱の元なので UTF-8 で統一するといいと思います。どうしてもメッセージ等を日本語で入れたい場合は、Unicode のコードによる記述方法を用いると良いです。 ※ 以下は alert("日本語表示") と同等です。
<script type='text/javascript'> function scriptTest() { alert( "\u65e5\u672c\u8a9e\u8868\u793a" ) } </script>
VBScriptドキュメント
|
【VBS + JavaScriptの最新記事】
【VBScript関連のカテゴリ】