Hallo Gorian,
ActiveX = IE, demnach solltest Du der Einfachheit halber in VBScript programmieren, zumindest die Event-Handler lassen sich so einfach implementieren.
Der IE ist auch in der Lage Funktionen die in VBS und JS zu mischen, sprich man kann sie gegenseitig aufrufen!
Beispiel:
<OBJECT id="meinTeil" ...>
Der Doku des ActiveX-Objektes kannst du ja die Parameterliste der Events entnehmen, falls erforderlich.
Der IE übernimmt *automatisch* die Zuweisung zwischen den Event-handler-Funktionen und den Objekten, sofern sie in VBS programmiert sind!!
Eine Deklaration des Eventhandler in der Art wie bei JS ist also nicht unbedingt erforderlich.
Beispiel: Eventname = fileLoaded
<script language="VBScript">
Function meinTeil_fileLoaded()
' ^^^^^^^^
' "meinTeil" ist die ID des (HTML-)Objektes
' machen was erforderlich ist
...
' z.B. JS-Funktion aufrufen (!)
Call assimilate("Ich bin VBS")
End Function
Function meinTeil_anderesEvent()
...
End Function
</script>
<script language="javascript">
function assimilate(msg) {
alert(msg);
}
</script>
Die Syntax für einen Event-Handler in VBS lautet also:
Function objektID_eventname()
End Function
Die "offiziellen" Vorgehensweisen in JavaScript wären:
1.)
<script FOR="meinTeil" EVENT="fileloaded" LANGUAGE="JavaScript">
/* hier auf Kleinschreibung achten! */
alert("Datei wurde geladen");
</script>
oder
2.) document.all.meinTeil.fileloaded="eventHandler()";
Der Aufruf von VBS-Funktionen innerhalb eines JavaScript Blockes ist natürlich ebenso möglich. Im Script-Tag muß aber unbedingt die verwendete LANGUAGE="sprache" angegeben werden, da IE sonst von JavaScript ausgeht.
Und ein nachvollziehbarer "Beweis" (copy'n'paste):
<script language="vbscript">
Function window_onload()
msgbox "Ich habe fertig!", vbInformation,_
"Tach auch"
End Function
</script>
entspricht
<body ... onload="funktion();">
Das steht übrigenz *alles* im MSDN ;-)
http://msdn.microsoft.com/workshop/author/om/event_model.asp
CirTap