uncaught exception: Die Erlaubnis für das Lesen der Eigenschaft....

Hansii1234

Mitglied
Hey hey!

Habe folgendes Problem... mehr oder weniger...
Es funktioniert zwar alles so wie es soll doch bringt mir firebug trotzdessen eine Fehlermeldung...
Code:
uncaught exception: Die Erlaubnis für das Lesen der Eigenschaft HTMLDivElement.className wurde verweigert

Das Problem ist, dass ich ein Divcontainer mit onMouseOut habe, der sobalt er verlassen wird sich automatisch schließt. Er soll sich natürlich nicht schließen, wenn man auf ObjektElemente innerhalb des Containers geht. Funktioniert auch alles prima, nur bringt es mir immer diese blöde Fehlermeldung. Selbst wenn ich
Code:
alert(wohin.className)
ausführen lasse, erscheint der richtige Name aber trotzdem die Fehlermeldung... Das className bezieht sich auf das Inputfeld! Weiß jemand warum?

Gruß!

Hier der Code!

Code:
function pop_schliessen(ereignis,div,was){
	var wohin=ereignis.relatedTarget||ereignis.toElement;
	var elem=div.getElementsByTagName('*');
	var raus=1;
	for(var x=0;x<elem.length;x++) {
		if(x==0) {
			if(elem[x].parentNode==wohin) raus=0;
		}
		if(elem[x]==wohin) raus=0;
	}
	if(wohin.className==was+'_suche') raus=0;
	
	if(raus==1){
		var entferne=document.getElementById('div_'+was);
		entferne.parentNode.removeChild(entferne);
	}
}

HTML:
<div id="haupt_Gruppe" class="fenster_haupt" style="overflow: hidden; height: 104px;">
	<div onmouseout="pop_schliessen(event,this,'Gruppe');document.getElementById('Gruppe_edit_2').innerHTML='- Einer Gruppe hinzufügen'">
		<input id="gruppe_suche_2" class="Gruppe_suche" type="text" value="suchen..." style="margin: 10px auto 10px auto; width: 80px;"/>
		<table class="gruppen">
		[..]
		Tabelleninhalt
		[..]
		</table>
	</div>
</div>
 
Moin,

auf welches Objekt willst du mit
Code:
var wohin=ereignis.relatedTarget||ereignis.toElement;
verweisen?

Wenn du auf das Element verweisen willst, welches verlassen wird, dann verwende
Code:
var wohin=ereignis.target||ereignis.srcElement;
...denn relatedTarget/toElement verweisen nicht auf das auslösende Element des Events, sondern bspw. bei mouseout auf das Element, welches der Mauszeiger beim Verlassen "betreten" hat.
 
Ist auch Absicht.
Es soll ja überprüfen, ob das Element auf dem der Mauszeiger jetzt zeigt innerhalb des angezeigten divs ist oder nicht.
(Mach ich hiermit):
Code:
if(elem[x]==wohin)
Falls eines der "elem[x]" gleich dem "wohin" entspricht, sagt es mir, dass das neu angewählte Element innerhalb des "Anzeigedivs" ist und dieses nicht schliessen soll.

Wie gesagt... Es funtioniert ja auch alles, obwohl die Fehlermeldung kommt. Und die nervt!


Würd ich rein theoretisch
Code:
function pop_schliessen(ereignis,div,was){
alert(wohin.className)
}
schreiben, spuckt es mir den richtigen Classnamen aus trotz der Meldung von Firebug...
 
Wenn du das div Richtung input verlässt(auch wenn sich das Input im div befindert, feuert dort mouseout im div)....dann funktioniert das Ganze aber nicht mehr.
Abgesehen davon vererben sich Events.

Wenn es dir nur um die Fehlermeldung geht, kannst du diese mit einem try/catch-Statement beseitigen.
Auch wäre die Prüfung des Tag-Namens von div möglich.
 
auch wenn sich das Input im div befindert, feuert dort mouseout im div
Ist mir schon klar... wäre es nicht so, würde die Funktion ja überflüssig sein!
Was nützt mir ein try/catch-Statement bei einem Fehler, der im Browser selbst nicht erscheint aber bei Firebug (dem DebuggerTool) kommt?

Gruß!
 
Meines Wissens bringt JS solche Fehlermeldungen in Form von Uncaught Exceptions nicht , es sei denn man wollte ein Knoten an ein Element ranhängen welches nicht existiert wobei die Fehlermeldung schaut auch anders aus.

Ich tippe hier mehr auf ein Firebug Problem das dieser mit irgendwas nicht klar kommt , ein Try Catch wird da auch nichts helfen vermute ich.
 
Was nützt mir ein try/catch-Statement bei einem Fehler, der im Browser selbst nicht erscheint aber bei Firebug (dem DebuggerTool) kommt?

Gegenfrage: was interessiert dich en Fehler, der im Browser nicht erscheint, aber im Firebug? :-)
(Übrigens gibt die Firefox-Fehlerkonsole denselben Fehler aus, es ist also kein Firebug-Problem). Es liegt auch nicht an nicht existierenden Knoten, denn der Fehler tritt auch auf, ohne dass man die Knotenstruktur ändert.

Und ein try/catch-Statement unterdrückt zumindest die Fehlermeldung, auch wenn sie den Fehler nicht beheben tut.
 
@Sven Mintel

Es tut mir leid, jemals an deiner Aussage gezweifelt zu haben...
Try/Catch... :-)
Code:
[...]
	try{
		if(wohin.className==was+'_suche') throw "innerhalb";
	}
	catch(e){
		if(e=="innerhalb") raus=0;
		else return true;
	}
[...]
Ohne Fehlermeldung :)

Vielen Dank!

Gruß!
 

Neue Beiträge

Zurück