Java Reference
In-Depth Information
Listener nicht bei allen HTML-Elementen unterstützt. Dennoch ist die Funktion recht
brauchbar, da zudem die Probleme in neuen Browsern immer mehr abnehmen. Eine solche
Funktion könnte so aussehen:
Listing 9.21■ Eine weitgehend universell einsetzbare Funktion zur Registrierung eines Listeners
function addEreignis(obj, evTyp, fktref , hinrueck){
if (obj.addEventListener){
obj.addEventListener(evTyp, fktref, hinrueck);
return true;
} else if (obj.attachEvent){
obj.attachEvent("on"+evTyp, fktref);
return true;
} else {
return false;
}
}
Als Parameter an die Funktion wird zuerst das Objekt übergeben, bei dem das Ereignis
registriert wird. Der zweite Parameter ist dann das Ereignis selbst. Hier muss man aufpas-
sen, da im Microsot-Modell ein on vorangestellt wird, sonst aber nicht. Da sonst aber alles
gleich bleibt, kann man dennoch mit einem Parameter auskommen und stellt in der
Microsot-Welt einfach das on als String voran. Der dritte Parameter ist die Funktionsrefe-
renz und der vierte Parameter gibt an, ob das Ereignis auf dem Hin- oder Rückweg in der
Bubble-Phase beobachtet werden soll. Im Fall der Microsot-Variante wird der Parameter
einfach ignoriert, denn hier wird das grundsätzlich nicht unterschieden. Die Browserwei-
che setzt übrigens explizit darauf auf, dass eine bestimmte Eigenschat bei einem Zielobjekt
nicht vorhanden ist und dann ein boolescher Wert (keine Ausnahme) das Ergebnis ist. Das
nachfolgende Beispiel kap9_9.html mit einer Anwendung dieser Funktion zeigt die Regist-
rierung bei dem Bild und einer Schaltläche:
Listing 9.22■ Die Anwendung der universellen Funktion
...
<body>
<h1>Klicken Sie auf das Bild und auf die Schaltläche</h1>
<img id="b1" src="images/b1.png" /><br />
<button id="bt1">Klick da</button><hr />
<div id="info"></div>
</body>
<script type="text/javascript">
function kDiv() {
document.getElementById("info").innerHTML = "Klick auf den Bildbereich";
}
function kH1() {
document.getElementById("info").innerHTML = "Klick auf den Button";
}
function addEreignis(obj, evTyp, fktref, hinrueck) {
if (obj.addEventListener) {
obj.addEventListener(evTyp, fktref, hinrueck);
return true;
} else if (obj.attachEvent) {
obj.attachEvent("on" + evTyp, fktref);
return true;
} else {
 
Search WWH ::




Custom Search