jQuery en Internet Explorer 8

 Gepubliceerd door om 10:37  Internet
apr 142010
 

Even een korte post die voor 99% van de wereldbevolking volstrekt niet relevant is, maar waarvan ik weet dat ik het anders ga vergeten:

Als je jQuery of JavaScript in het algemeen gebruikt in Internet Explorer 8 (ik weet niet of dat bij oude versies ook al zo was), let er dan op dat variabelen in je script niet dezelfde naam hebben als dat je voor de ID’s van elementen in je HTML gebruikt. Internet Explorer ziet dat namelijk niet als verschillende objecten.

In de screenshot hiernaast kun je een fout zien die optreedt in zo’n geval. Ik vul een variabele “graph” met de inhoud die ik in de regel erna wil toewijzen aan een <div> met de ID “graph”. Dat gaat goed in Google Chrome en in Firefox, maar niet in Internet Explorer. Interesseert me even helemaal niet of dat wel zou moeten kunnen of niet, de workaround is tamelijk simpel: geef de variabele een andere naam.

Overigens beschikt IE8 standaard over een prima debugger voor zulke scripts (op F12 drukken), dus je kunt in ieder geval gemakkelijker dan vroeger dit soort fouten opsporen.

Een ander probleem dat ik overigens had met Internet Explorer 8 was dat de pagina’s die mijn script produceert in “Quirks Mode” werden weergegeven. En dat leverde niet de gewenste resultaten op, die pagina’s moesten ‘gewoon’ in IE8 Standards mode worden weergegeven. Op deze pagina kun je lezen hoe IE8 bepaalt welke modus gebruikt moet worden. Mijn scripts voegden geen DOCTYPE aan de pagina toe en die wordt nou juist gebruikt door IE8. Toevoegen ervan zorgde er voor dat de pagina weer in Chrome, Firefox en IE8 juist werden weergegeven. Voor een analysetool dat waarschijnlijk toch nooit verder zal komen dan lokaal op mijn systeem vind ik dat even een voldoende brede set browsers.

Deel dit bericht: