[Může se hodit] Nevalidní HTML ve snippetu může způsobit pád IE8

Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
tobice
Člen | 30
+
0
-

Nedávno jsem řešil poměrně atypický problém, který sice nemá přímo s Nette nic společného, ale při psaní ajaxové aplikace stylem, který se v Nette běžně používá, se s ním můžete snadno setkat.

Vyvíjím ajaxovou aplikace v Nette, přičemž používám standardní přístup s nette.ajax.js a invalidací snippetů. Aplikace fungovala ve všech moderních prohlížečích bez problémů, když jsem ji ale začal testovat v IE8, některé requesty prohlížeč doslova shazovaly. Okno prohlížeče se vypnulo a naskočila klasická microsoftí hláška „Odeslat zprávu o chybách“. Těsně před pádem ještě vlevo dole vyskočil výstražný trojúhelníček indikující chybu v JavaScriptu. Byl trochu problém se k ní dostat (člověk musel log otevřít ve zlomku sekundy, než nastal samotný pád prohlížeče). Ta chyba byla ‘nodeType’ is null or not an object (resp. její česká varianta).

Postupný zkoušením se podařilo odhalit, že pád prohlížeče způsobuje invalidace jednoho konkrétního snippetu, ve kterém byl špatně uzavřený tag span. Takže v zásadě to byla banalita, která ale v prvním okamžiku může způsobit docela šok :)

Vojtěch Dobeš
Gold Partner | 1316
+
0
-

Chápu to dobře, že problémem byl neuzavřený span v aktualizovaném obsahu snippetu odeslaném ze serveru? K neuvěření… na to by stálo za to přidat do nette.ajax.js ochranu.

Šaman
Člen | 2640
+
0
-

Myslíš něco, jako upozornění „Používání prohlížeče IE8 způsobuje nefunkčnost aplikace, může poškodit váš počítač a při každé aktualizaci někde na světě zapláče králíček ?“

tobice
Člen | 30
+
0
-

Jojo přesně tak. Snippet obsahoval přibližně toto:

<div class="">
<span>Lorem ipsum<span>
</div>

Neuzavřený tag jsem přehlédl a o týden později, když jsem to začal více testovat, to začalo shazovat IE8.