Element met stijl display:none wordt niet gevonden in IE7
Het probleem is dus dat deze div in oudere versies van IE niet wordt gevonden, omdat de regel geldt dat elementen met display:none niet bij de HTML horen. Het element wordt dus gezien als iets dat niet bestaat.
Ik heb dus ergens in mijn javascript dit staan:
De foutmelding die wordt gegeven is dat het element dus niet bestaat.
Hoe kan ik dus toch dit element krijgen en er de stijl van aanpassen?
- wees er zeker van dat je elke id-naam maar één keer aan een element toewijst.
- wees er zeker van dat je HTML correct is. haal je pagina dus eens door de w3c validator: http://validator.w3.org/
- getElementById moet je gebruiken NADAT je pagina geladen is. je kunt dat bereiken door getElementById in de onderstaande functie te plaatsen.
- indien een element dynamisch geladen wordt (AJAX) zul je telkens opnieuw moeten binden door getElementById opnieuw aan te roepen
Gewijzigd op 01/06/2013 08:53:52 door Frank Nietbelangrijk
Quote:
omdat de regel geldt dat elementen met display:none niet bij de HTML horen.
Oh? De HTML wordt door de browser omgezet in een DOM tree, dat is het geen je met Java
Script doorzoekt. Wat er uit eindelijk op het scherm komt is een samenvoeging van de DOM tree en de Styles
Struct, dit noem je painten. Elk element staat in de DOM tree, dus deze quote is pure onzin.
Zomaar een idee, bedoel je niet document.getElementsByTagName('div')?
Frank:
indien een element dynamisch geladen wordt (AJAX) zul je telkens opnieuw moeten binden door getElementById opnieuw aan te roepen
Dit is niet waar voor de getElement(s)By* functies. Deze geven namelijk een live dom node list terug, dat betekend dat ie update als er nieuwe elements in komen. De nieuwe functies voor selecteren van elementen, querySelector(All), geeft alleen een dom node list terug. Hiervoor geldt dit probleem dus wel.
Maar wat is nu de oplossing Wouter?
daarvoor weten we te weinig, frank heeft een aardig mooi lijstje gemaakt en ik heb er nog 1tje bij gestopt. Tijd om Inspecteur Hogeveen z'n werk te laten doen en te beslissen waar de fout ligt :)
Gewijzigd op 01/06/2013 15:39:10 door jan terhuijzen
Harry hogeveen op 31/05/2013 22:23:50:
oudere versies vanaf IE7 en lager
Dat is een contradictio in terminis. Of moet het werken in IE7, 6 en 5? Maar wat is daar het nut van dan? IE7 wordt al nauwelijks meer gebruikt.
Verder moet je even de hele pagina posten, ontdaan van irrelevante zaken. Want het kan inderdaad aan een scala van zaken liggen.
Gewijzigd op 01/06/2013 17:51:33 door Frank Conijn
Mogelijk heb je een JavaScript fout op je pagina? Heb je al gekeken in het "Ontwikkelaars hulpprogramma" van IE? Dit tover je tevoorschijn met de knop F12, misschien dat je hier iets van opsteekt.
De naam van de variabele waar ik het inzette was het probleem.
Dit stukje was dus niet goed:
Het gaf de error: Deze eigenschap of methode wordt niet ondersteund door dit object
Ik heb na veel proberen de naam van de variabele veranderd:
En de fout is weg.
Ik weet zeker dat het nergens anders aan lag. Er stond al heel weinig javascript op die pagina.