JS bei IE vs. FF

AlexD1979

Erfahrenes Mitglied
Hallo,
Es ist zum verrückt werden. Ich versuche eine Applikation universell zu machen, dass diese auf jedem Browser funktioniert. Damit man mal vom IE wegkommt *G*.
So nun habe ich ein ganz einfaches Beispiel von SELFHTML, selbst das funktioniert aber nicht mal, obwohl es Mozilla 1.0 konform sein soll.

Code:
<html>
<head><title>Test</title>
<script language="JScript" type="text/jscript">
function Handle_Click () {document.all.Info.innerHTML = "Der Bereich, auf den Sie geklickt haben, ist mit <" + window.event.srcElement.tagName + "> ausgezeichnet und hat die id <i>" + window.event.srcElement.id + "<\/i>. Der Event wurde jedoch bis ans body-Tag durchgereicht.";
}
</script>
</head>
<body bgcolor="#FFFFFF" onClick="javascript:Handle_Click()">
<div id="Inhalt">
<p id="Text_1">Ein <i id="i_Text">Textabsatz</i>. Klicken Sie hinein</p>
<p id="Text_2">Ein <u id="u_Text">anderer Textabsatz</u>. Klicken Sie hinein</p>
<p id="Text_3">Noch ein <b id="b_Text">Textabsatz</b>. Klicken Sie hinein</p>
<p id="Text_4">Ein letzter <tt id="tt_Text">Textabsatz</tt>. Klicken Sie hinein</p>
</div>
<p id="Info">Hier erscheinen Infos zum Klick</p>
</body>
</html>

In IE : alles i.O.
In FF: FEHLER: Handle_Click() is not definied

Was zum Henker ist denn da das Problem bitteschön?
 
Datic hat gesagt.:
Hi,

document.all ist IE-only.

Versuchs mal mit:
Code:
document.getElementById("Info").innerHTML

Gruß
.

Hi,
Leider gibt es nun noch den Fehler, window.event has no properties.

Nebenbei, gibt es irgendwo gute Referenzen mit den elementaren Unterschieden in JS bei Netscape, IE und Firefox
 
Ich habe eigentlich konkret das Beispiel, das ich einen Link auf ein Div habe, aber prüfen muss, das der Link nicht aktiviert ist, wenn das Objekt eine Checkbox ist.

Code:
function goToEdit(h) {	
	obj=event.srcElement.type;
	if(checktr==1&&obj!='checkbox') {
		location.href=h;
	}
}
in IE funktioniert das, in FireFox nicht. Da bekomme ich immer Fehler "event is not definied" und damit meint er obj= ...
Ich habe schon gelesen, das srcElement nicht FF-konform ist, dafür sollte man target verwenden. Dennoch ist der Fehler noch akut.


Was ist daran falsch? Wenn ich mir mit Alert den Inhalt von h ausgeben lasse, ist alles ok, dort steht eine URL.
 
In NON-IE-Browsern kommst du per EVENTOBJEKT.target an das Ursprungselement des Events.
EVENTOBJEKT musst du dabei der Funktion explizit übergeben, da es nur im IE automatisch verfügbar ist.
 
Sven Mintel hat gesagt.:
In NON-IE-Browsern kommst du per EVENTOBJEKT.target an das Ursprungselement des Events.
EVENTOBJEKT musst du dabei der Funktion explizit übergeben, da es nur im IE automatisch verfügbar ist.

Ähh aja, hast du ein kleines Beispiel für mich?!
 
Code:
<html>
<head>
<title>Test</title>
<script type="text/javascript">
<!--
function klick(e)
{
objEvent = (window.event) ? window.event : e;
objTarget= (window.event) ? objEvent.srcElement : objEvent.target;

alert( 'Event:\n"'+ 
        objEvent.type + 
        '"auf ein \<' + 
        objTarget.tagName + 
        '\>-Element mit dem Inhalt\n\n "' +
        objTarget.innerHTML+'"');
}
//-->
</script>
</head>
<body>
<a onclick="klick(event)">Klick mich</a>
</body>
</html>
 
Sven Mintel hat gesagt.:
Code:
<html>
<head>
<title>Test</title>
<script type="text/javascript">
<!--
function klick(e)
{
objEvent = (window.event) ? window.event : e;
objTarget= (window.event) ? objEvent.srcElement : objEvent.target;

alert( 'Event:\n"'+ 
        objEvent.type + 
        '"auf ein \<' + 
        objTarget.tagName + 
        '\>-Element mit dem Inhalt\n\n "' +
        objTarget.innerHTML+'"');
}
//-->
</script>
</head>
<body>
<a onclick="klick(event)">Klick mich</a>
</body>
</html>


Danke Sven für das Beispiel. Ich dreh noch durch, es klappt aber trotzdem nicht bezogen auf mein Problem, hier das abgeänderte Beispiel von mir, beim objEvent.type bekomme ich nur undefinied, und bei objTarget.tagName JS Fehler objTarget has no properties. Allerdings nur beim Firefox. Wenn in IE 6, dann Ausgabe alert: 1.click, 2.div, 3.Testversuch123&nbsp;

Code:
function goToEdit(h) {
	objEvent = (window.event) ? window.event : h;
	objTarget= (window.event) ? objEvent.srcElement : objEvent.target;
	alert(objEvent.type);
	alert(objTarget.tagName);
	alert(objTarget.innerHTML);
	obj=event.srcElement.type;
	if(checktr==1&&obj!='checkbox') {
		location.href=h;
	}
}
 
Zuletzt bearbeitet:
"h" ist bei dir nicht "event", sondern eine URL, soweit ich sehe.

Poste mal mehr Code, das lässt sich sicher einfacher lösen.
von besonderem Interesse wäre der Teil mit dem Link und der checkbox.
 
Sven Mintel hat gesagt.:
"h" ist bei dir nicht "event", sondern eine URL, soweit ich sehe.

Poste mal mehr Code, das lässt sich sicher einfacher lösen.
von besonderem Interesse wäre der Teil mit dem Link und der checkbox.
Richtig, h enthält genaugenommen einen Link.

Code:
...
<cfoutput><tr style="background-color:#color#;" bgcolor=#color# onClick="<!--- location.href='#h#'; --->goToEdit('#h#');" <!---TH  Zeilenwahl onMouseover="tgl('fR#currentrow#', '##FFCC99');" onMouseout="tgl('fR#currentrow#', '');" //--->></cfoutput>
// das location.href=#h# ist auskommentiert. Wenn ich das anstelle des Javascripts nehme, geht es natürlich in Firefox ohne Prüfung, ob der gedrückte Button eine Checkbox ist. Und genau die Prüfung brauche ich an der Stelle
...
//die Checkbox in dem FORM
<input type="checkbox" name="f_18132" onclick="return assignment_action('f_assignment_finished','-18132','Wollen Sie diese Aufgabe wirklich als erledigt markieren?');" >
Wobei für h z.B. gilt:= '../admin/edit.cfm?obj_id=-18132&obj_type=234324&cmd=edit&back_to=%2Fhelios%2Fprogram%2Ehelios%2Fdesktop%2Findex%2Ecfm&QueryFrom=1&QueryTo=8');">

Es muss jedenfalls geprüft werden, ob das angeklickte Element NICHT die Checkbox ist, bei allen anderen soll die Weiterleitung auf der Seite vorgenommen werden.
 
Zuletzt bearbeitet:

Neue Beiträge

Zurück