Nutzt man zum binden von JavaScript Funktionen an HTML Elementen nicht das wohlbekannte Konstrukt
<select id="auswahl" onchange="machwas()" />
sondern die modernere Variante des (DOM-Event Modell ( z.B. Firefox) oder attachEvent (nur Internet Explorer), die z.B. den Vorteil hat dass man mehr wie eine Funktion an das Event binden kann. So büßt man jedoch eine einfache Möglichkeit ein dieses Event auch per JavaScript manuell auszulösen.
var o = document.getElementById('auswahl');
o.onchange();
Funktioniert dann nicht mehr, jedoch bietet das DOM-Event Modell auch da eine Möglichkeit, natürlich wieder Browserspezifisch. Mit einer kleinen Hilfsfunktion ist dies jedoch auch sehr einfach möglich.
function raiseEvent (eventType, elementID)
{
var o = document.getElementById(elementID);
if (document.createEvent) {
var evt = document.createEvent("Events");
evt.initEvent(eventType, true, true);
o.dispatchEvent(evt);
}
else if (document.createEventObject)
{
var evt = document.createEventObject();
o.fireEvent('on' + eventType, evt);
}
o = null;
}
Um nun ein Event manuell auszulösen (feuern) macht man nur noch folgendes
raiseEvent('change', 'auswahl');
Und schon werden alle dem Element-Event zugeordneten Funktionen aufgerufen.
Print | posted on Thursday, January 05, 2006 12:00 AM
Der Eintrag ist mir etwas Wert