Autor Zpráva
Tori
Profil
Neviděli jste někdo nějaký seznam / checklist toho, co v JavaScriptu nefunguje před verzí IE 8? Nějaké jednotlivosti jsem našla (přebývající čárky za posledním prvek pole/objektu, chyba u Element.insertBefore, více než 32k příkazů v jednom souboru), ale na nějaký obsáhlejší seznam co zkontrolovat jsem nenarazila. Nevíte o něčem?

Snažím se odladit skript (JS vyhledávač), který v IE8 funguje, ale IE7 a níž ne, a nemůžu přijít na to, jak zjistit příčinu. V IE Testeru při té chybě zkolabuje celá záložka. Je tam nějaká ochrana (Win Vista), která při chybě shodí program, a nedá se nastavit výjimka pro IE Tester. Visty mě nechaly nainstalovat nižší verzi IE ale odmítají ji spustit. V IE8 jsou nějaké vývojářské nástroje, dají se přepnout na režim IE 7, ale stránka funguje bez problémů (stejně jako v režimu IE8). VirtualBox mám, ale Windows do něj nedostanu, neb mám nefunkční mechaniku. JSLint / JSHint našly jen běžné věci (== místo ===, úmyslné přiřazení místo porovnávání apod.). Zkoušela jsem vyhledávat od takových začátečních písmen, aby se načítaly ty nejmenší indexové soubory (JSON objekt), v tom chyba nebyla. ... Co by s tím ještě šlo udělat? Budu ráda za nějaké nasměrování.
_es
Profil
Bez živej ukážky ťažko špekulovať nad všetkými možnými odlišnosťami.
Keeehi
Profil
Tori:
Do virtualbox se dá nainstalovat operační systém i mez fyzické mechaniky. Samotný virtualbox umí číst obrazy disků v ISO a asi třech dalších, případně se dá použít i virtuální mechanika pro obrazy, které virtualbox sám otevřít nezvládne.
1Pupik1989
Profil
Já se občas orientuji podle Quirksmode.org. Většinou ale prostě nezbývá nic jiného než Google. Doufám, že to alespoň trochu pomůže.
Str4wberry
Profil
Na zjištění, kde která věc funguje, používám stránku When can I use....
Tori
Profil
To jsem nevěděla, Keeehi, díky, vyzkouším. Ostatním děkuju za odkazy, pročtu si je. Když to nezabere, bude i živá ukázka.
Tori
Profil
Chyba byla nakonec syntaktická (chybějící středníky za if (...) { var x = function() { ... }; }) v kombinaci s tím, že IE7 je přísnější než pozdější verze (takže při chybě nebyl definovaný globální objekt vyhledávače). Ve virtuálních XP šlo nainstalovat a spustit několik verzí IE + MS script debugger a s tím už to šlo krásně. Děkuju všem za pomoc.
_es
Profil
Tori:
chybějící středníky za if (...) { var x = function() { ... }; }
Tá bodkočiarka je nadbytočná. Problém je v tom, že JS neumožňuje podmienené definovanie premennej, no ak sa to v kóde nachádza, tak k tomu rôzne prehliadače pristupujú rôzne.
Chamurappi
Profil
Reaguji na Tori:
To se mi zdá nějaké divné. S volitelností středníků vedu válku už pět let, protože používám minifikátor, který o ně nepečuje, takže dokáže scucnutím do jednoho řádku udělat syntaktickou chybu a já pak musím najít, kde jsem středník zapomněl. Nikdy jsem si za tu dobu nevšiml, že by se Explorer 7 odlišoval od ostatních. Na podobnou situaci už bych narazit musel, funkce podmíněně přiřazuji často (i když bez varu).
Tori
Profil
Chamurappi, _es: Omlouvám se za zavádějící informaci, ráno jsem spěchala a zapomněla na podstatné - čárky za posledním prvkem objektu. Tohle (=středníky) byla jedna z dalších drobností, které jsem taky opravovala, ale nezjišťovala jsem už, jestli fatální nebo ne.
_es
Profil
Tori:
Tohle (=středníky) byla jedna z dalších drobností, které jsem taky opravovala, ale nezjišťovala jsem už, jestli fatální nebo ne.
Tá bodkočiarka nie je vôbec chyba, je úplne nadbytočná. Problémy môže spôsobovať podmienené použitie príkazu var, ktoré rôzne prehliadače spracujú rôzne.
Tori
Profil
_es:
Takže správně by bylo podmíněné přiřazení hodnoty?
var x = null; // nebo jiná výchozí hodnota
if (podminka) { x = function() { ... } }
_es
Profil
Tori:
Takže správně by bylo podmíněné přiřazení hodnoty?
Áno, príkaz var by mal byť nepodmienený.

var x = null; // nebo jiná výchozí hodnota
Alebo len var x; a hodnotou x bude undefined, alebo sa nezmení, ak je x už definované.
Tori
Profil
_es:
Díky. JavaScript jsem se "učila" spíš metodou pokus/omyl, takže občas dělám základní chyby.

Vaše odpověď

Mohlo by se hodit

Neumíte-li správně určit příčinu chyby, vkládejte odkazy na živé ukázky.
Užíváte-li nějakou cizí knihovnu, ukažte odpovídajícím, kde jste ji vzali.

Užitečné odkazy:

Odkud se sem odkazuje


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: