Váš názor = ? – JavaScript, AJAX, jQuery – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Váš názor = ? – JavaScript, AJAX, jQuery – Fórum – Programujte.comVáš názor = ? – JavaScript, AJAX, jQuery – Fórum – Programujte.com

 

Petroff0
Věrný člen
28. 9. 2007   #1
-
0
-

Marně přemýšlím, proč tento kód, který je na 1. i 2.pohled v pořádku, a normálně funguje v FF (krokováno ve Firebugu),
se v IE zastaví na začátku funkce s chybovým reportem: objekt tuto vlastnost nebo metodu nepodporuje

function nacitam()

{
vysledky = document.getElementById("vysledky"); /* <<<< TADY / VZNIK \ */
txt = document.createElement("p"); /* <<<< POPŘ.TADY \ CHYBY / */

txt.appendChild(document.createTextNode("Načítám data z databáze."));
txt.id = "text";
vysledky.appendChild(txt);
procenta = document.createElement("p");
procenta.id = "procenta";
procenta.appendChild(document.createTextNode("0%"));
vysledky.appendChild(procenta);
}

Orig.dotaz: http://diskuse.jakpsatweb.cz/index.php?action=vthread&forum=8&topic=59284
Dokument = http://deli.xf.cz/filmy/
JS ze skriptu: http://deli.xf.cz/filmy/script_1.3.js

Napadá vás něco? (V nejhorším si budu muset nainstalovat debuger, ten microsoftí mi před časem záhadně přestal fungovat)

Nahlásit jako SPAM
IP: ...–
Prog.0
Věrný člen
29. 9. 2007   #2
-
0
-

Hm, neviem čo môže byť vo veci, všimol som si že firebug v DOM inspectore ukazuje pod objektom window objekt:

vysledkyrt div#vysledky

Nahlásit jako SPAM
IP: ...–
Prog.
jinaq0
Newbie
29. 9. 2007   #3
-
0
-

V IE se mi stávalo, že pokud jsem proměnou nedeklaroval, automaticky mi to chybu vyhazovalo. Zkus udělat toto:



function nacitam()
{
var vysledky = document.getElementById("vysledky"); /* <<<< TADY / VZNIK \ */
var txt = document.createElement("p"); /* <<<< POPŘ.TADY \ CHYBY / */
txt.appendChild(document.createTextNode("Načítám data z databáze."));
txt.id = "text";
vysledky.appendChild(txt);
var procenta = document.createElement("p");
procenta.id = "procenta";
procenta.appendChild(document.createTextNode("0%"));
vysledky.appendChild(procenta);
}

Nahlásit jako SPAM
IP: ...–
Prog.0
Věrný člen
29. 9. 2007   #4
-
0
-

To jinaq: to var má presný význam. to že to niekedy funguje aj keď ho nenapíšeš neznamená že to funguje tak ako očakávaš. Ak použiješ premmennú bez var, tá sa zadefinuje ako člen top-objektu, vo webstránkach objekt window. ak použiješ var, premmenná patrí objektu v ktorom ju definuješ.
Vyskúšaj:

function a()

{
var x = '123';
}
a(); alert(x); // undefined


function a()

{
x = '123';
}
a(); alert(x); // '123'

Nahlásit jako SPAM
IP: ...–
Prog.
jinaq0
Newbie
29. 9. 2007   #5
-
0
-

To Prog.: Souhlasím, problém je, že jsem řešil jednu webovou aplikaci, tak když jsem tam to var ve funkci nedal, nefungovalo to v exploreru vůbec, taky se to týkalo operace přiřazení a taktéž ta proměná nebyla předtím nikde použita. Prostě zkolaboval už při prvním zavolání. A přesně to var to vyřešilo. Proč to zafungovalo, to nevím. Ale předpokládám, že to bylo způsobeno Explorerem, protože ve Firefoxu mu to v pohodě funguje. A taky jsem to testoval na IE6.

Předpokládám že Petroff ví, že chyba vzniká na řádcích, které označil.

Nahlásit jako SPAM
IP: ...–
Petroff0
Věrný člen
29. 9. 2007   #6
-
0
-

Radil jsem nepoužívat stejná jména pro proměnné a id elementů (zřejmě IE má v obj.modelu kolize objektů se stejnými jmény, nevím).
Proto to přejmenování proměnné vysledky na vysledkyrt --> už to nehlásí chybu, ale nefunguje.
Po použití SPANu místo P je vše OK , zajímavé....

Nahlásit jako SPAM
IP: ...–
Prog.0
Věrný člen
30. 9. 2007   #7
-
0
-

To Petroff: Predpokladám že pôjde o nejaký IE bug.

To jinaq: Chyby pri vynechaní vznikajú vačšinou tak, že programátor si myslí že pracuje s lokálnou premmennou danej metódy, pričom je niečo ako "globálna". Potom ak rovnako pomenuje premmennú v inej metóde, znova bez var, tak sa budú vzájomne ovplyvňovať. Prečo IE rieši niektoré veci inak ako sa píše v definícii javascriptu, to sa treba spýtať niekoho iného (m$ rulezz)...

Nahlásit jako SPAM
IP: ...–
Prog.
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 6 hostů

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý