前回の書込みから2ヶ月経っている・・・(^^;
最近、ちょっと仕事も落ち着き、COMなどプログラミングしてみた。
で、検証用にWSHを使ってみたのだが、最初どうやってイベントハンドラを定義してよいかわからなかった。どうやら以下のようなコードでイベントを受理できるらしい。
testcom.counterというProgIDのCOMを作ってテストしたときのWSHである。CreateObjectの第2引数でイベント受理用の関数のプリフィクスを指定する。上のCOMは値が変化したときにonchangeというイベントが発生するのだが、上のようなコードを書くとそのイベントが発生したとき、objTest_onchange関数がコールされる。
ただ残念なのは、この方法が使えるのがWSHのみで、html上のJavaScriptでは使えないということだ。
最近、ちょっと仕事も落ち着き、COMなどプログラミングしてみた。
で、検証用にWSHを使ってみたのだが、最初どうやってイベントハンドラを定義してよいかわからなかった。どうやら以下のようなコードでイベントを受理できるらしい。
var objTest = WScript.CreateObject("testcom.counter", "objTest_");
if( objTest )
{
msg( "CreateObject() succeeded." );
msg( "Default value is "+objTest.value );
objTest.inc();
objTest.dec();
for(var i=0;i<10;i++)
WScript.Sleep(1000);
}
else
msg( "CreatetObject() failed." );
function objTest_onchange(c)
{
msg( "(EVENT)Value changed. New value is "+this.value );
}
function msg(txt)
{
WScript.Echo( txt );
}
testcom.counterというProgIDのCOMを作ってテストしたときのWSHである。CreateObjectの第2引数でイベント受理用の関数のプリフィクスを指定する。上のCOMは値が変化したときにonchangeというイベントが発生するのだが、上のようなコードを書くとそのイベントが発生したとき、objTest_onchange関数がコールされる。
ただ残念なのは、この方法が使えるのがWSHのみで、html上のJavaScriptでは使えないということだ。
テーマ:JavaScript(ジャバスクリプト) - ジャンル:コンピュータ
|
| ホーム |
SHOJI's Code



