getElementByID problem mit IE
aspa
- javascript
hallo zusammen
mit dem folgenden code habe ich ein etwas seltsames problem:
wenn ich das html file aus meinem ordner im IE7 starte (halt rechtsklick auf index.htm -> open with -> IE7) dann kommt die warnung, und ich muss "allow blocked content" wählen. danach funcktioniert alles wie es soll, ohne warnungen und fehler.
wenn ich das gleiche file nun auf meinen webspace hochlade, und über die URL
www.BLABLA.com im IE7 aufrufe, dann geht plötzlich gar nichts mehr - es gibt einen fehler im javascript, das dann natürlich abgebrochen und nicht mehr ausgeführt wird.
der fehler ist:
Line: 489
Char: 1
Error: 'window.parent.document.getElementByID(...).style' is null or not an object
Code: 0
folgende zeile ist die zeile 489. sie befindet sich in einem javascript, das sich im header der html datei befindet:
window.parent.document.getElementById('sideb').style.visibility="hidden";
das dazugehörige elent, das hier angesprochen werden soll, befindet sich im body ganz am schluss, und sieht so aus:
<div id="sideb" name="sideb" style="width: 80px; height: 150px; z-index: 30; margin-left: 900px; margin-top:-2600px; visibility:visible;">
<a href="welcome.htm" target="blabla" class="hidefocus" style="z-index:31;"
onmouseover="homeside.src='homeside2.png';"
onmouseout="homeside.src='homeside.png';">
<img src="homeside.png" name="homeside" border="0" style="z-index:31;"></a>
<a href="#" target="blabla" class="hidefocus" style="z-index:31;"
onmouseover="createside.src='createside2.png';"
onmouseout="createside.src='createside.png';"
onclick="document.getElementById('aspa').height='605';window.parent.document.getElementById('topschieber').style.visibility='hidden'; parent.scrollTo(0,0);window.parent.document.getElementById('toptribal').style.visibility='visible';window.parent.document.getElementById('buttons').style.height='300px'; parent.scrollTo(0,0);">
<img src="createside.png" name="createside" border="0" style="z-index:31;"></a>
<a href="designs1.htm" target="blabla" class="hidefocus" style="z-index:31;"
onmouseover="designsside.src='designsside2.png';"
onmouseout="designsside.src='designsside.png';">
<img src="designsside.png" name="designsside" border="0" style="z-index:31;"></a>
<a href="information.htm" target="blabla" class="hidefocus" style="z-index:31;"
onmouseover="informationside.src='informationside2.png';"
onmouseout="informationside.src='informationside.png';"
onclick="document.getElementById('aspa').height='1200'; window.parent.document.getElementById('topschieber').style.visibility='visible';window.parent.document.getElementById('topschieber').style.marginLeft='65px'; window.parent.document.getElementById('button1').style.visibility='hidden';">
<img src="informationside.png" name="informationside" border="0" style="z-index:31;"></a>
<a href="products.htm" target="blabla" class="hidefocus" style="z-index:31;"
onmouseover="productsside.src='productsside2.png';"
onmouseout="productsside.src='productsside.png';"
onclick="document.getElementById('aspa').height='1200'; window.parent.document.getElementById('topschieber').style.visibility='visible';window.parent.document.getElementById('topschieber').style.marginLeft='540px';window.parent.document.getElementById('button4').style.visibility='hidden';">
<img src="productsside.png" name="productsside" border="0" style="z-index:31;"></a>
</div>
die gesamtidee dahinter ist, dass ich das gesamte div mit den fünf links und bildern ausblenden will. vor der zeile 489 ist ein browserswitch, denn das div soll nur ausgeblendet werden, dfalls jemand den IE benutzt.
ich habe schon lange gegoogelt, und einiges gefunden über IE und getElementByID. Da scheint es ja einige bugs zu geben, aber ich sehe nicht, was bei mir falsch läuft.
ich glaube allerdings, dass die zeile 489 das erste mal in meinem javascript ist, dass ich mit getElementByID ein DIV anspreche. alles davor (was ja offensichtlich funktioniert) sprach bilder an.
kann es sein, dass man im IE mit getElementByID keine divs ansprechen darf?
oder mache ich einfach irgendwo einen dummen fehler und bin blind?
besten dank im voraus
kann es sein, dass man im IE mit getElementByID keine divs ansprechen darf?
Man darf in keinem Browser, da es diese Funktion nicht gibt.
Struppi.
kann es sein, dass man im IE mit getElementByID keine divs ansprechen darf?
Man darf in keinem Browser, da es diese Funktion nicht gibt.
Struppi.
wenn ich bei dem link den du angegeben hast weiter lese, dann finde ich da aber ein beispiel dafür:
<script type="text/javascript">
function ausrichten () {
document.getElementById("zweiter").align = "center";
document.getElementById("dritter").align = "right";
}
</script>
</head><body>
<div id="erster"><h1>Erster Bereich</h1><p>mit etwas Text</p></div>
<hr>
<div id="zweiter"><h1>Zweiter Bereich</h1><p>mit etwas Text</p></div>
<hr>
<div id="dritter"><h1>Dritter Bereich</h1><p>mit etwas Text</p></div>
<a href="javascript:ausrichten()">ausrichten!</a>
</body></html>
da ist ein div, das id="zweiter" hat, und darauf wird mit getElementById('zweiter') zugegriffen.
das mache ich doch auch genau so, oder?
Hallo,
kann es sein, dass man im IE mit getElementByID keine divs ansprechen darf?
Man darf in keinem Browser, da es diese Funktion nicht gibt.
wenn ich bei dem link den du angegeben hast weiter lese, dann finde ich da aber ein beispiel dafür:
dann vergleiche mal den Funktionsnamen aus deinem Code *ganz genau* mit dem aus dem Beispiel. Siehst du den entscheidenden Unterschied? Tipp: Er ist ganz am Schluss.
da ist ein div, das id="zweiter" hat, und darauf wird mit getElementById('zweiter') zugegriffen.
das mache ich doch auch genau so, oder?
Fast. Du verwendet nur einen falschen Namen.
So long,
Martin
Hallo,
kann es sein, dass man im IE mit getElementByID keine divs ansprechen darf?
Man darf in keinem Browser, da es diese Funktion nicht gibt.
wenn ich bei dem link den du angegeben hast weiter lese, dann finde ich da aber ein beispiel dafür:dann vergleiche mal den Funktionsnamen aus deinem Code *ganz genau* mit dem aus dem Beispiel. Siehst du den entscheidenden Unterschied? Tipp: Er ist ganz am Schluss.
da ist ein div, das id="zweiter" hat, und darauf wird mit getElementById('zweiter') zugegriffen.
das mache ich doch auch genau so, oder?Fast. Du verwendet nur einen falschen Namen.
So long,
Martin
ich sehs nicht, kannst dus mir bitte sagen?
Grüße,
ich sehs nicht, kannst dus mir bitte sagen?
sieh oben - ich habs (gnädig wie ich bin) im klartext - es ist Id nicht ID, d am ende ist klein zu schreiben.
MFG
bleicher
Grüße,
ich sehs nicht, kannst dus mir bitte sagen?
sieh oben - ich habs (gnädig wie ich bin) im klartext - es ist Id nicht ID, d am ende ist klein zu schreiben.
MFG
bleicher
hallo
danke, aber den fehler hab ich nur im titel für dieses thema gemacht.
wenn ihr euch im ersten posting den teil aus dem javascript anschaut, dann ist dort Id richtig geschrieben, oder?
Grüße,
wenn ihr euch im ersten posting den teil aus dem javascript anschaut, dann ist dort Id richtig geschrieben, oder?
Line: 489
Char: 1
Error: 'window.parent.document.getElementByID(...).style' is null or not |an object
Code: 0 ^^
war das copy&paste oder hast du es abgetippt?
MFG
bleicher
Grüße,
wenn ihr euch im ersten posting den teil aus dem javascript anschaut, dann ist dort Id richtig geschrieben, oder?
Line: 489
Char: 1
Error: 'window.parent.document.getElementByID(...).style' is null or not |an object
Code: 0 ^^war das copy&paste oder hast du es abgetippt?
MFG
bleicher
DOH!! da auch...
abegtippt, da der IE es mir nicht erlaubt hat den text in der fehlermeldung zu kopieren (nochn grund den browser nicht zu mögen!)
ja, auch da ist das "d" klein in echt. tut mir leid, eindeutig mein fehler
mir ist allerdings noch was aufgefallen:
irgendwo in einem link habe ich ein "onclick" statement, welches genau das gleiche macht:
onclick="window.parent.document.getElementById('topschieber').style.visibility='hidden';"
wobei topschieber sich wiederrum auf ein div bezieht:
<div style="..." id="topschieber"></div>
dort bekomme ich KEINE fehlermeldung, und das funktioniert wunderbar...
Hi,
ich sehs nicht, kannst dus mir bitte sagen?
Beachte Deine Gross/Kleinschreiung. Blindfisch ;-)
Gruesse, Joachim
Hallo aspa!
wenn ich das html file aus meinem ordner im IE7 starte (halt rechtsklick auf index.htm -> open with -> IE7) dann kommt die warnung, und ich muss "allow blocked content" wählen.
Hierzu: Mark of the Web.
oder mache ich einfach irgendwo einen dummen fehler
Struppi hat Dich drauf hingewiesen, Martin noch etwas genauer, aber...
und bin blind?
...sagen wir mal: »Du hast es noch nicht gesehen.«!
Viele Grüße aus Frankfurt/Main,
Patrick
Grüße,
es dauert sehr lange - ich habe es noch immer noch nicht drauf - bis man checkt wo man schlampiger und wo sehr genau auf die schreibweise achten muss. mit der 2en vorgehensweise ist man aber immer auf der sicheren seite ,) , ist aber IMHO doof, dass größere Patzer durchgehen, aber ID/Id nicht :(
MFG
bleicher
herzlichen dank für eure hilfe allerseits, und nochmals entschuldigung für meine zwei vertipper!
problem wurde gelöst.
ich habe die komplette javascript anweisung aus dem head genommen, und ganz unten nach dem </html> wieder eingefügt.
so funktioniert es problemlos.
scheinbar war das problem, dass das script schon ausgeführt wurde, bevor die divs alle geladen waren. im FF passiert nix, und bei der zweiten ausführung, wenn alle divs geladen sind, funktioniert dann alles.
der IE scheint scripte, die einmal einen fehler verursachen, permanent nicht mehr zu berücksichtigen?!
naja, wie auch immer, script ist jetzt da unten, und funktioniert bestens.