Der folgende Beitrag wurde am 05. 08. 2009, 15:22 Uhr von alkasser veröffentlicht.
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
Der folgende Beitrag wurde am 05. 08. 2009, 16:18 Uhr von Micha veröffentlicht.
Hallo alkasser,
> kann jemand mir bitte sagen, warum folgende Code nicht in Mozilla funkz?
>
> function switchbgcolor(e) {
>
> if (window.event) { //IE only
Weil 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;
Nun musst Du als nächstes unterscheiden, ob die Eigenschaft srcElement oder target unterstützt wird:if (e.srcElement) {
//srcElement ist bekannt
}else if (e.target) {
// target ist bekannt
} else {
// Nichts von beiden...
}
Mit freundlichem Gruß
Micha
--
simple JavaScript Spiele: Snake, MineSweeper, Sudoku oder Tetris
Der folgende Beitrag wurde am 05. 08. 2009, 16:39 Uhr von alkasser veröffentlicht.
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
Der folgende Beitrag wurde am 05. 08. 2009, 17:37 Uhr von Micha veröffentlicht.
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
--
simple JavaScript Spiele: Snake, MineSweeper, Sudoku oder Tetris
Der folgende Beitrag wurde am 05. 08. 2009, 16:19 Uhr von EKKi veröffentlicht.
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
--
sh:( fo:| ch:? rl:( br:> n4:~ ie:% mo:} va:) de:] zu:) fl:{ ss:) ls:& js:|
Der folgende Beitrag wurde am 05. 08. 2009, 18:26 Uhr von ChrisB veröffentlicht.
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
--
Light travels faster than sound - that's why most people appear bright until you hear them speak.
© 1998-2013 SELFHTMLImpressumSoftware: Classic Forum 3.4