document.getElementById ist null in Opera
Lollix
- javascript
Hello World ;)
Folgendes Problem habe ich: Bei einem document.getElementById bekomme ich null zurück, allerdings nur bei Opera, in FireFox läuft alles perfekt!
Da der Projektcode so geschätzt ein halbes MB beträgt, werde ich nicht alles posten xD, aber hier die erklährung:
Es werden Divs per AJAX in eine Div geladen und per klick auf die Div soll der zindex nach vorne springen. Soweit, sogut.
Die ID´s werden automatisch in einem PHP-Script erzeugt, das js bindet also nur den HTML-Code ein, also in etwa:
<div id="win0">asd</div>
Die id ändert sich immer, beim zweiten Fenster wäre es dann win1, beim dritten win2 und immer so weiter.
Folgende JS-Funktion verwende ich:
function putInFront(id){
zindex++;
if(!isNaN(id)){
id = "win"+id;
document.getElementById(id).style.zIndex = zindex;
}
wobei zindex eine "globale" Variable ist.
Braucht ihr noch irdendwelche Infos?
Danke für eure Antworten,
lg
Lollix
Hi,
Braucht ihr noch irdendwelche Infos?
Du hast das Problem „live“ vor dir, findest aber die Lösung nicht.
Erwartest du jetzt, dass wir diesbeüglich erfolgreicher sind, wenn uns ein halbes Dutzen Zeilen Quellcode gezeigt werden ...?
Welche Debug-Schritte hast du denn bisher unternommen?
Mal per Dragonfly geschaut, ob das Element auch wirklich so mit der ID im DOM vorhanden ist, wie du annimmst?
Mal geprüft, ob die ID eindeutig im Dokument ist?
Mal geschaut, ob das dynamische Zusammensetzen des ID-Wertes, nach dem du suchen lassen willst, auch wirklich das ergeben hat, was du annimmst?
MfG ChrisB
Hi,
also die ID, die ich Suche stimmt überein, es existiert ebenfalls in DOM, die ID ist eindeutig.
Hier noch ein paar weiter Zeilen Code:
HTML-Ausgabe:
<div id="result">
<div onclick="putInFront(0);" class="main" "id="win0" style="position: absolute;">
</div>
Opera Fehlermeldung:
Uncaught exception: TypeError: Cannot convert 'document.getElementById(id)' to object
Error thrown at line 39, column 4 in putInFront(id) in http://localhost/c/window.js:
document.getElementById(id).style.zIndex = zindex;
called from line 1, column 0 in <anonymous function>(event):
putInFront(0);
lg
Lollix
Yerf!
<div onclick="putInFront(0);" class="main" "id="win0" style="position: absolute;">
^steht das wirklich so im Quellcode?
Gruß,
Harlequin
Yerf!
<div onclick="putInFront(0);" class="main" "id="win0" style="position: absolute;">
^steht das wirklich so im Quellcode?Gruß,
Harlequin
Hi,
Danke, das ist, wenn man vor lauter Bäumen den Wald nicht sieht :)
Das war auch das Problem, da sieht man mal, was FireFox alles so zulässt xD
lg
Lollix
Hi,
<div onclick="putInFront(0);" class="main" "id="win0" style="position: absolute;">
^steht das wirklich so im Quellcode?
Danke, das ist, wenn man vor lauter Bäumen den Wald nicht sieht :)
Das war auch das Problem, da sieht man mal, was FireFox alles so zulässt xD
Das sieht man mal, was Validierung wert ist.
MfG ChrisB
bei der Situation ergäbe sich folgender sinnvoller Code:
<div id="result">
<div onclick="putInFront(this);" class="main" style="position: absolute;">
</div>
function putInFront(element){
zindex++;
element.style.zIndex = zindex;
}
wozu das Element erst mühsam wieder aus dem DOM suchen, du kannst über "this" dem Script eine Referenz mitteilen