Autor | Zpráva | ||
---|---|---|---|
Onecar Profil |
#1 · Zasláno: 1. 7. 2007, 19:48:49
Zdravím,
řeším tu teď velmi závažný problém, u kterého se domnívám, že mne velmi brzy raní mrtvice. Chtěl jsem si naprogramovat pěkný AJAXový guestbook. Oprášit všechny své prachem zanesené znalosti, však to znáte. Netušil jsem ale, že interpretace JavaScriptu, který příliš neovládám, se může v odlišných prohlížečích tak hodně lišit. No ale k věci - tady jsem hodil svou současnou verzi GBooku. http://jednoauto.com/lab/gbook/ . Zkuste si prosím nyní v Opeře 9 kliknout do oněch inputů a správně je vyplnit. Měli byste vidět (sejně jako já, uživatel Opery) vedle inputů ikonku zelenou, či červenou, a odpovídající text. Tak jsem si to představoval, v Opeře to jede jako po másle. Interaktivní formulář, mňam. Nevím, který jelimán, tatar či plantážník za to může, ale ono zobrazování stavu vyplnění inputu nefunguje v Firefoxu 2 a IE7. Což o to, IE7 bych oželel (v IE6 jsem se pro sichr ani nedíval, tam ve funkčnost nedoufám), ale to, že to NEFUNGUJE v Firefoxu, je fatální, kardinální a vůbec obrovitánský problém. Ještě že vlastní povedenou chybovou konzoli, která hlásí v podstatě jen 2 chyby: Chyba: error is not defined Zdrojový soubor: http://localhost/gbook/js.js Řádek: 112 (a různé jiné typy řádků - furt to samé, ale co s tím, "error is not defined" ?) Chyba: setting a property that has only a getter Zdrojový soubor: http://localhost/gbook/js.js Řádek: 26 (a další 4 lajny - opět naprosto nechápu, co se mi tímto snaží Firefox říci) Suma sumárum, tyto dvě chyby mohou za to, že Firefox nefunguje tak jako Opera. Nevyčítám mu to, s JavaScriptem začínám, je ale pro mě opravdu důležité, aby to jelo. Pokud mi pomůžete, Bůh vám to vrátí na dětech, děkuju mnohokrát. Script: js.js -> http://jednoauto.com/lab/gbook/js.js |
||
los Profil * |
#2 · Zasláno: 1. 7. 2007, 20:05:50
Chyba: error is not defined
Vždy keď nastavuješ premennú error, tak ju deklaruješ ako lokálnu premennú (použitím var) a neskôr sa pokúšaš čítať z globálnej premennej, ktorá nie je definovaná. Takže na začiatok daj var error a z riadkov, kde priraďuješ hodnotu odstráň to var. Túto chybu hlási aj Opera. Chyba: setting a property that has only a getter Nastavuješ vlastnosť style, ale z tejto vlastnosti sa dá len čítať. Namiesto status_name.style = 'visibility: visible;' použi status_name.style.visibility = "visible". |
||
Onecar Profil |
#3 · Zasláno: 1. 7. 2007, 20:29:47
No, díky tvé radě s status_name.style.visibility = "visible" to již Firefox zvládne přechroustat, ale Opera zas ne.
Nelze nějak tyto dva prohlížeče pomocí JS odlišit? |
||
Onecar Profil |
#4 · Zasláno: 1. 7. 2007, 22:42:00
Opravdu nikdo neví? :-(
|
||
fos4 Profil |
#5 · Zasláno: 1. 7. 2007, 23:17:37
Nemas error jako globalni promenou.
na zacatku toho souboru .js si dej var error = null; a pak ve funkcich nedavej var error pac tim definujes lokalni promenou ve fci a prebyjes tak tu globalni. |
||
fos4 Profil |
#6 · Zasláno: 1. 7. 2007, 23:18:05
a na odliseni prohlizecu :
var IE = (document.all && document.getElementById && !window.opera); var FF = (!document.all && document.getElementById && !window.opera); var OP = (document.all && document.getElementById && window.opera); |
||
DoubleThink Profil * |
#7 · Zasláno: 2. 7. 2007, 00:56:55
Nevím, který jelimán, tatar či plantážník za to může
Programátor, jako vždy. Což o to, IE7 bych oželel (v IE6 jsem se pro sichr ani nedíval, tam ve funkčnost nedoufám) Zábavné. Právě jsi oželel 90% návštěvníků. Opera, pro kterou tak vehementně ladíš, se pohybuje stále pod jedním procentem. No, díky tvé radě s status_name.style.visibility = "visible" to již Firefox zvládne přechroustat, ale Opera zas ne. To se mi moc nezdá. Vlastnost style umí Opera bez problému používat. |
||
peta Profil |
#8 · Zasláno: 2. 7. 2007, 13:12:51
fos4
var IE = (document.all && document.getElementById && !window.opera); :) var OP = (document.all && document.getElementById && window.opera); :))) var FF = (!document.all && document.getElementById && !window.opera); :) stare IE nemusi znat document.getElementById O - tak to je naprosto zbytecne kontrolovat 3 funkce, kdyz vsechny musi byt 1, staci window.opera FF - zbytecne zjistovat window.opera Onecar "Opeře to jede jako po másle." - Opera je ale smej nejvetsi, to jeste nic neznamena :) status_name.style = 'visibility: visible;'; obvykle se to pise takto: status_name.style.visibility='visible'; treba se pokousis pracovat s neexistujicim objektem JS kozola ve Firefoxu hlasi: Chyba: error is not defined Zdrojový soubor: http://jednoauto.com/lab/gbook/js.js Řádek: 112 Varování: Chyba při parsování hodnoty vlastnosti 'float'. Deklarace vynechána. Zdrojový soubor: http://jednoauto.com/lab/gbook/style.css Řádek: 5 ... pri psani do inputu Chyba: setting a property that has only a getter Zdrojový soubor: http://jednoauto.com/lab/gbook/js.js Řádek: 77 Chyba: setting a property that has only a getter Zdrojový soubor: http://jednoauto.com/lab/gbook/js.js Řádek: 92 Chyba: setting a property that has only a getter Zdrojový soubor: http://jednoauto.com/lab/gbook/js.js Řádek: 101 Chyba: setting a property that has only a getter Zdrojový soubor: http://jednoauto.com/lab/gbook/js.js Řádek: 44 Chyba: setting a property that has only a getter Zdrojový soubor: http://jednoauto.com/lab/gbook/js.js Řádek: 26 |
||
webcreator Profil |
#9 · Zasláno: 3. 7. 2007, 13:04:01
Nefunguje mi tahle stranka pod mozillou
Pod IE 6 funguje takto:: Jednou za 40ms poslu dotaz naserverovou php stranku, ta mi vrati retezec a ten zobrazim do inputu <html> <head> <meta http-equiv="content-type" content="text/html; charset=utf-8"> <script type="text/javascript"> function start() { window.setInterval("synonyma()", 40); } function synonyma() { if (window.XMLHttpRequest) { http_request = new XMLHttpRequest(); } else if (window.ActiveXObject) { try { http_request = new ActiveXObject("Msxml2.XMLHTTP"); } catch (eror) { http_request = new ActiveXObject("Microsoft.XMLHTTP"); } } http_request.onreadystatechange = function() { zpracuj(http_request); }; http_request.open('POST', 'synonyma.php', false); http_request.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded'); http_request.send(null); } function zpracuj(http_request) { if (http_request.readyState == 4) { if (http_request.status == 200) { document.text.cisloa.value = http_request.responseText; } else { document.text.cisloa.value = "Chyba"; document.text.napetia.value = http_request.status; document.text.haha.value = http_request.responseText; } } } </script> </head> <body onload="start(); synonyma()"> <h2>Synonyma p?es AJAX</h2> <input type="text" name="string" id="string" class="string"> <!--<input type="submit" name="submit" value="submit" onclick="synonyma();">--> <form name='text'> <input type='text' name='cisloa' value='1' readonly> <input type='text' name='napetia' value='nnn' readonly> <input type='text' name='haha' value='nnn' readonly> </form> </body> </html> |
||
peta Profil |
#10 · Zasláno: 5. 7. 2007, 14:42:44
webcreator
form name='text' neco.text je psani textoveho obsahu do element kdo vi, co se stane pri document.text.cisloa.value = "Chyba"; co to pise za chybu? Z jakeho prikladu jsi vychazel, ktery fungoval? Dohledat rozdily... Jinak si zalozim vlastni tema pro svuj dotaz. Pokud nechces neco pridat k tematu zalozenemu Onecar. Taky by se mohlo stat, ze ti to moderator nenavratne smaze a muzes to psat znova. Jak to ma ve zvyku treba Dero. Nekteri to jen presouvaji... Ale tez je pak problem si to dohledat, kam. |
||
DoubleThink Profil * |
#11 · Zasláno: 5. 7. 2007, 15:04:52
Jak to ma ve zvyku treba Dero
Nebo já... Nekteri to jen presouvaji Minibb neumí přesunout (osamostatnit) část vlákna. Není jiná možnost než mazat. muzes to psat znova Jako terapie proti psaní OT příspěvků je to velmi účinné. |
||
Keilew Profil |
#12 · Zasláno: 5. 7. 2007, 15:08:15
DoubleThink
Minibb neumí přesunout (osamostatnit) část vlákna. Není jiná možnost než mazat. Ale umí... http://www.minibb.net/download.html |
||
Časová prodleva: 17 let
|
0