[IE8] createElement('div') levert soms Document is null op*

Pagina: 1
Acties:

Acties:
  • 0 Henk 'm!

  • vorlox
  • Registratie: Juni 2001
  • Laatst online: 02-02-2022

vorlox

I cna ytpe 300 wrods pre miute

Topicstarter
He Allemaal,

Ik heb een pagina waarbij ik (heel soms) de melding document = null krijg in IE8.
Nu heb ik al de profiler gedraaid enz, maar ik kan het eigenlijk nooit reproducren, na een F5 werkt het gewoon wel.

Ik snap hem ook eigenlijk niet.
Stel dat ik bij document.getElementById('iets') een null melding krijg snap ik helemaal.
Echter hij doet het bij document.createElement('div');
Document is toch de root van je dom en zou toch al vanaf de HTML tag beschikbaar moeten zijn.
Google geeft me ook alleen resultaten op child item error van document.

Het is wel zo dat ik deze call doe voordat de pagina is completed, maar dan nog document moet toch altijd aanwezig zijn. of mis ik hier iets.

Kent iemand dit fenomeen?

Even klein voorbeeld om mijn probleem uit te leggen
JavaScript:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Test</title>
<script type="text/javascript">
    function doIets() {
        var newEl = document.createElement('div'), //Hier geeft hij dus heel soms document = null error op
            testEl = document.getElementById('test');
        if (newEl && testEl) {
            newEl.innerHTML = 'Dit is een sub div';
            testEl.appendChild(newEl);
        }
    }
</script>
</head>
<body>
<div id="test"></div>
<script>
doIets();
</script>
</body>
</html>


Dus ik call doIets(); voordat de pagina gestopt is met renderen.
Ik snap dat ik dit kan oplossen met onload / onready maar begrijpen doe ik het niet.
div test zit al in de dom op dat moment dus zou document toch echt aanwezig moeten zijn.

[ Voor 40% gewijzigd door vorlox op 25-01-2012 18:47 . Reden: kan niet typen..zie sig ]


Acties:
  • 0 Henk 'm!

  • _Erikje_
  • Registratie: Januari 2005
  • Laatst online: 17-09 12:57

_Erikje_

Tweaker in Spanje

doIets() wordt uitgevoerd tijdens het laden van de pagina, je kunt beter wachten en dan je writes doen

Hint: domready :9

[ Voor 3% gewijzigd door _Erikje_ op 25-01-2012 21:18 ]


Acties:
  • 0 Henk 'm!

  • TheBorg
  • Registratie: November 2002
  • Laatst online: 20-09 18:24

TheBorg

Resistance is futile.

Je kan je function call ook na de body tag zetten. Een domready is netter maar dit is vaak betrouwbaarder.

Acties:
  • 0 Henk 'm!

  • BtM909
  • Registratie: Juni 2000
  • Niet online

BtM909

Watch out Guys...

Function call na je body tag is betrouwbaarder dan een domready event?

Ehm enlighten please ;)

@vorlox: wil je voortaan even een wat beschrijvendere titel bedenken?

[ Voor 29% gewijzigd door BtM909 op 26-01-2012 10:04 ]

Ace of Base vs Charli XCX - All That She Boom Claps (RMT) | Clean Bandit vs Galantis - I'd Rather Be You (RMT)
You've moved up on my notch-list. You have 1 notch
I have a black belt in Kung Flu.


Acties:
  • 0 Henk 'm!

  • Bosmonster
  • Registratie: Juni 2001
  • Laatst online: 22-09 16:31
En daarnaast valideert het niet.

Acties:
  • 0 Henk 'm!

  • vorlox
  • Registratie: Juni 2001
  • Laatst online: 02-02-2022

vorlox

I cna ytpe 300 wrods pre miute

Topicstarter
Uhm sorry, ik krijg de melding document is null..hoe beschrijvend wil je het hebben.
Tevens beantwoord het niet geheel mijn vraag. Dat over domready is me duidelijk ..prima echter bij het opbouwen van de dom zou toch window, document als eerste aanwezig moeten zijn?
Ik snap ook niet waarom het altijd wel werkt en heeeel soms niet.

Maar goed ik zal domready implementeren

Acties:
  • 0 Henk 'm!

  • crisp
  • Registratie: Februari 2000
  • Laatst online: 00:51

crisp

Devver

Pixelated

document zou inderdaad binnen <body> wel gewoon altijd beschikbaar moeten zijn; ik heb hier zelf nog nooit problemen mee ondervonden. Waar IE wel berucht om is is de zogenaamde 'Operation Aborted' error. Deze zou in jouw geval in bepaalde situaties kunnen optreden bij je appendChild.
Wat niet? Een inline script-element in je <body>?

Intentionally left blank


Acties:
  • 0 Henk 'm!

  • vorlox
  • Registratie: Juni 2001
  • Laatst online: 02-02-2022

vorlox

I cna ytpe 300 wrods pre miute

Topicstarter
Het blijft idd vreemd, maar goed het is ook niet hoe het hoort, maar als je aan een wat verouderd systeem zit te prusten, dan kom je dit soort dingen wel eens tegen.
Het is wel zo dat ik het gewoon niet kan reproducen in IE 7 / IE 9 / Opera / Firefox en Chrome...alleen IE 8

Maar goed ik denk dat ik er nooit achter zal komen. Dus we gaan maar eens een library introduceren in deze pagina's. Nu nog ff kijken welke het beste past.

Acties:
  • 0 Henk 'm!

  • Bosmonster
  • Registratie: Juni 2001
  • Laatst online: 22-09 16:31
crisp schreef op donderdag 26 januari 2012 @ 21:25:
document zou inderdaad binnen <body> wel gewoon altijd beschikbaar moeten zijn; ik heb hier zelf nog nooit problemen mee ondervonden. Waar IE wel berucht om is is de zogenaamde 'Operation Aborted' error. Deze zou in jouw geval in bepaalde situaties kunnen optreden bij je appendChild.

[...]

Wat niet? Een inline script-element in je <body>?
Nee tussen /body en /html
Pagina: 1