DOM Events Chrome und Opera
Jens Müller
- javascript
Moin Moin,
zuerst mal ein ganz einfaches kurzes Script
function getClickID(event)
{
var nav = navigator.userAgent;
if(window.event)
{
var el = window.event.srcElement;
var clickID = el.getAttribute('id');
alert('M$ Event Model: ' +clickID +' ' +nav);
}
if(document.addEventListener)
{
var clickID = event.target.getAttribute('id');
alert('DOM Event Model: ' +clickID +' ' +nav);
}
}
Interessanterweise, feuern bei beiden Event Modellen sowohl Opera als auch Google Chrome. window.event
und document.addEventListener
. Wie kann ich nun erreichen dass, sowohl Opera als auch Chrome eine der beiden Event Modelle bevorzugt behandeln, und die andere unter den Tisch fallen lassen.
Eventuel mit?
function doSomethingID(event)
{
var nav = navigator.userAgent;
if(document.addEventListener)
{
var clickID = event.target.getAttribute('id');
alert('DOM Event Model: ' +clickID +' ' +nav );
}
if(!document.addEventListener)
{
if(window.event)
{
var el = window.event.srcElement;
var clickID = el.getAttribute('id');
alert('M$ Event Model: ' +clickID +' ' +nav);
}
}
}
Wobei, finde ich wenigstens, dies ein wenig zu viel des Guten ist.
Entspricht in etwa als wenn mich die Kassieren im Supermarkt fragt, "Bargeld oder Karte?". Um dann noch hinzuzufügen: "Wenn sie keine Karte haben, nehmen wir auch Ihr Bargeld. Aber Kartenzahlung ist uns lieber"
gruesse aus'm ruhrpott
jens mueller
Hi,
mit else.
if(window.event)
{
var el = window.event.srcElement;
var clickID = el.getAttribute('id');
alert('M$ Event Model: ' +clickID +' ' +nav);
}
else if(document.addEventListener)
{
var clickID = event.target.getAttribute('id');
alert('DOM Event Model: ' +clickID +' ' +nav);
}
}
~dave
@@dave:
nuqneH
mit else.
Aber andersrum.
Qapla'
@@Jens Müller:
nuqneH
Wie kann ich nun erreichen dass, sowohl Opera als auch Chrome eine der beiden Event Modelle bevorzugt behandeln, und die andere unter den Tisch fallen lassen.
else
kennst du? (Nein, die Nachbarstochter ist nicht gemeint.)
Erst auf document.addEventListener
prüfen, dann im else
-Zweig auf window.event
.
var nav = navigator.userAgent;
Nicht dein Ernst, oder?
Qapla'
Eventuel mit?
function doSomethingID(event)
{
var nav = navigator.userAgent;if(document.addEventListener)
{
var clickID = event.target.getAttribute('id');
alert('DOM Event Model: ' +clickID +' ' +nav );
}if(!document.addEventListener)
{
if(window.event)
{
var el = window.event.srcElement;
var clickID = el.getAttribute('id');
alert('M$ Event Model: ' +clickID +' ' +nav);
}
}
}
>
Das geht einfacher:
~~~javascript
function doSomethingID(event)
{
if(!event) event = window.event; // Wobei ich nicht sicher bin, ob diese Zeile notwendig ist
var el = event.target || event.srcElement;
var clickID = el.id;
}
Struppi.