indow.event.srcElement unter Mozilla
alkasser
- javascript
hallo leute
kann jemand mir bitte sagen, warum folgende Code nicht in Mozilla funkz?
function switchbgcolor(e) {
if (window.event) { //IE only
target = window.event.srcElement;
}
else {
target = e.target;
}
if (target.style.backgroundColor == "#ff0000") {
target.style.backgroundColor = "#FFFFFF";
}
else {
target.style.backgroundColor = "#FF0000";
}
}
es funkz in IE ohne Problem, aber in den anderen Browsern gar nicht:-((
Danke vorab
alkasser
Hallo alkasser,
kann jemand mir bitte sagen, warum folgende Code nicht in Mozilla funkz?
function switchbgcolor(e) {
if (window.event) { //IE only
Weil <http://de.selfhtml.org/javascript/objekte/event.htm@title=event> neben dem IE auch alle anderen Browser kennen. Folglich sollte Dein else-Zweig nie erreicht werden. Du willst vermutlich prüfen, ob e vorhanden bzw. nicht vorhanden ist:
`if (!e) e = window.event;`{:.language-javascript}
Nun musst Du als nächstes unterscheiden, ob die Eigenschaft srcElement oder target unterstützt wird:
~~~javascript
if (e.srcElement) {
//srcElement ist bekannt
}else if (e.target) {
// target ist bekannt
} else {
// Nichts von beiden...
}
Mit freundlichem Gruß
Micha
Hallo Micha,
ich danke dir deine schnelle Antwort. ich habe folgendes getestet:
function switchbgcolor(e) {
var targ;
if (!e) e = window.event;
if (e.srcElement) {
alert('IE');
targ = e.srcElement;
}
else if (e.target) {
alert('Mozilla');
targ = e.target;
}
else {alert('was anders');}
if (targ.style.backgroundColor == "#ff0000") {
targ.style.backgroundColor = "#FFFFFF";
}
else {
targ.style.backgroundColor = "#FF0000";
}
}
Nun im IE kriege ich beim Onklick erst 'IE' und mein Ziel gefärbt(wie gewünscht) im Mozilla sollte ich normalerweise wenn e.target erkannt ist 'Mozilla' und das Ziel auch gefärbt. Aber in Mozilla passiert gar nicht weder der Hinweis noch das Ziel bekomme ich raus.
kannst du mir vielleicht weiter hilfen?
Beste Grüße
alkasser
Hallo alkasser,
kannst du mir vielleicht weiter hilfen?
Wie rufst Du die Funktion auf?
Ich habe es mal fix probiert mit einem p
-Tag:
document.getElementsByTagName('p')[0].onclick = function(e) { switchbgcolor(e); };
und mein FF gab mir Mozilla zurück. Übrigens, der Mozilla setzt die Farben nach dem Schema rgb(r, g, b) und nicht in Hexadezimaldarstellung. Hier solltest Du besser zwei CSS-Klassen verwenden und diese tauschen. className
sollte Dir da weiterhelfen.
Mit freundlichem Gruß
Micha
Mahlzeit alkasser,
kann jemand mir bitte sagen, warum folgende Code nicht in Mozilla funkz?
Natürlich. Sobald DU uns mitteilst, was genau "nicht funzt" ...
es funkz in IE ohne Problem, aber in den anderen Browsern gar nicht:-((
Und wie äußert sich dieses "gar nicht"? Fehlermeldungen? Verhalten?
Keine Arme - keine Kekse.
MfG,
EKKi
Hi,
if (target.style.backgroundColor == "#ff0000") {
Du hast natürlich durch eine Kontrollausgabe verifiziert, dass dir hier bei der Abfrage der Eigenschaft auch der Wert zurückgegeben wird, den du erwartest?
MfG ChrisB