Autor | Zpráva | ||
---|---|---|---|
loyza Profil |
#1 · Zasláno: 12. 3. 2007, 14:13:33
Zdravím,
mám Javascriptový kód: function handleServerResponse(){ if(xmlHttp.readyState==4){ if(xmlHttp.status==200){ xmlResponse=xmlHttp.responseXML; xmlDocumentElement=xmlResponse.documentElement; document.getElementById("Imesto").options.length=0; mestoarray=xmlResponse.getElementsByTagName("mesto"); oSeznam=document.getElementById("Imesto"); for(var i=0;i<mestoarray.length;i++){ var id=mestoarray.item(i).firstChild.textContent.toString(); var mesto=mestoarray.item(i).lastChild.textContent.toString(); Omesto=document.createElement("option"); Omesto.setAttribute("value",id); OmestoT=document.createTextNode(mesto); Omesto.appendChild(OmestoT); oSeznam.appendChild(Omesto); } } } } Tento kód mi v Opeře normálně funguje, ale v IE mi nefunguje. Nevíte někdo proč?? Předpokládám, že je tam nějaká metoda, kterou IE nepodporuje, ale nevím která a ani nevím kde bych to našel. Ještě trochu popis o co jde: Mám v dokumentu dva selecty vedle sebe, seznam krajů a seznam měst v daném kraji a chtěl bych při změně kraje, aby se načetli z databáze města patřící do daného kraje a vypsaly se do druhého selectu. Select se jmenuje Imesto. Předpokládám, že tehle řádek vymaže celý select: document.getElementById("Imesto").options.length=0; a ten další kód do něho načte ty města, ale to už v IE neproběhne, opera to přechroustá celé a města načte, ale IE pouze vymaže select a města tam už nepřidá. Jenom ještě pro jistotu uvedu jak vypadá ten XML dokument, ze kterého se data načítají, ale to by myslím mělo být irelevantní, ale pro jistotu: <response> <mesto> <id> 1 </id> <nazev> Praha </nazev> </mesto> <mesto> <id> 2 </id> <nazev> Brno </nazev> </mesto> <mesto> <id> 3 </id> <nazev> Ostrava </nazev> </mesto> </response> |
||
habendorf Profil |
#2 · Zasláno: 12. 3. 2007, 14:22:28
IE se občas nelíbí (IMHO) proměnné pojmenované klíčovými slovy. Zkus přejmenovat proměnnou id.
|
||
peta Profil |
#3 · Zasláno: 12. 3. 2007, 15:54:50
loyza
co vypisuje JS konzola IE? |
||
loyza Profil |
#4 · Zasláno: 12. 3. 2007, 16:09:44
Díky za rady.
Jo tak problém je lokalizován. Předtím jsem si toho nevšiml (nevěděl jsem o nějaké konzoli v IE), až když peta napsal o tej konzoli. Píše, že: mestoarra.item(...).firstChild.textContent má hodnotu null nebo není objekt Takže asi to nezná textContent, zkusím někde zjistit lepší způsob jak ta data vydolovat. |
||
Leo Profil |
#5 · Zasláno: 12. 3. 2007, 16:20:03
On taky textContent nic neni, co treba nodeValue? Leo
|
||
loyza Profil |
#6 · Zasláno: 12. 3. 2007, 16:27:44
Tak už jsem to pohledal, klasicky funguje v každém prohlížeči něco jiného. Podle této stránky v IE existuje vlastnost text a v FF existuje vlastnost textContent, opera zná obojí. tak sem tam vrznul podmínku a ať si každý vybere to co zná. Jen teďka doufám, že neexistuje prohlížeč, který by neznal ani jedno. I když, jestli existuje tak ať existuje, bude se to načítat pomalu bez Javascriptu.
Díky všem za rady. |
||
loyza Profil |
#7 · Zasláno: 12. 3. 2007, 17:59:25
tak ještě jeden dotaz:
ten vrchní kód je pro to aby zpracoval odpověď, která přišla ze servru, ale teď mám problém na ten server poslat požadavek, používám tuhle metodu: xmlHttp.open("GET","http://localhost/kudera/ziskejkraj.php?name="+name ,true); pokud je tam localhost tak vše funguje jak má, ale jenom u mě na počítači, pokud se na tu stránku podívá někdo z jiného důvodu tak mu to celkem logicky nefunguje, nahradil jsem tedy slovo localhost svojí ipadresou a na mém počítači v IE vše funguje správně, ale to je to jediné, protože v ostatních prohlížečích to nefunguje a z jiného prohlížeče to také nejde, zkusil jsem tedy ve firefoxu zjistit proč to nejde a hlásí to následující chybu: Odepření přístupu při volání metody XMLHttpRequest.open hledal jsem na internetu proč by něco takového měl hlásit, al enic jsem nenašel, nevíte někdo?? |
||
peta Profil |
#8 · Zasláno: 12. 3. 2007, 19:08:39
loyza
neni script neni mozne zjistit problem. Odkaz na stranku? pravdepodobne stejny problem jako s content. Jiny prohlizec, jiny request. Zkus pouzivat alerty a dohleda se, co je undefined :) |
||
one_k Profil |
#9 · Zasláno: 12. 3. 2007, 19:13:49
loyza
Odepření přístupu při volání metody XMLHttpRequest.open tzn. ze to nenalezlo/nemelo pravo na pristup k danemu php scriptu. zkus tam dat relativni cestu a pokud to pujde, tak jsme v obraze:) |
||
loyza Profil |
#10 · Zasláno: 12. 3. 2007, 19:21:46
Omlouvám se, že otravuju s takovejma trivialitama, samozřejmě že už to funguje.
Relativní (??) cesta byl ten správný způsob jak to spravit. Takže jsem tam dal tohle: xmlHttp.open("GET","/kudera/ziskejkraj.php?name="+name ,true); a už to jde, když jsem tam nedal to lomítko na začátku anebo jsem tam dal pouze jméno skriptu bez adresáře tak to samozřejmě nefungovalo, protože to ten apache nenašel. Jen mi není jasné, proč to s tou ipadresou nefungovalo. Ale bez téhle informace dokážu žít. Díky všem za pomoc. |
||
peta Profil |
#11 · Zasláno: 13. 3. 2007, 07:57:49
loyza
ja mam treba easyPHP a tam je muj program nahrany v http://localhost/nazev/ s IP adresou: http://127.0.0.1/nazev/ s IP adresou na netu: http://212.20.96.24/wwwstranka/nazev/ (volny.cz/www/nazev) otazka je, jak to mas nastavene ty. / - domovsky adresar (homedir), nahodou jej maji nastaveny spravne na tvou stranku (treba na wz.cz, kdyz zadas lomitko, tak se dostanes na wz.cz nikoliv ucet.wz.cz s tim volny by to bylo tak, ze / = www.volny.cz nikoliv predpokladane / = www.volny.cz/loyza/ kdyby to bylo spatne nastaveno jako na wz ) ./ - aktualni adresar - nic = aktualni adersar ../ - nadrazeny adresar ../../ - o 2 nadrazene adresare |
||
loyza Profil |
#12 · Zasláno: 13. 3. 2007, 08:24:18
peta
no mně je to jasný, mám stránky nahrané v adresáři C:\dev\www\kudera\soubory no a v apachi je nastaven document_root na hodnotu C:\dev\www takže když napíšu //kudera//soubor tak se dostanu k souboru, který chci, ale když to začíná lomítkem tak si nemyslím, že je to relativní adresa, ale absolutní adresa na servru. Nicméně nechápu, proč to nefungovalo s tou ipadresou. |
||
peta Profil |
#13 · Zasláno: 13. 3. 2007, 13:05:44
loyza
nevim, ja moc nechapu s jakou IP adresou. Kdybys to rozepsal? "když to začíná lomítkem tak si nemyslím, že je to relativní adresa, ale absolutní adresa na servru." A jaka jina to tedy je? absolutni adresa je C:devwwwkuderasoubory http://localhost/kudera/ziskejkraj.php realtivni je jakakoliv, ktera neni uplna kuderasoubory kudera/ziskejkraj.php /kudera/ziskejkraj.php ./kudera/ziskejkraj.php ../kudera/ziskejkraj.php Jak jsem psal, zalezi, na co maji presmerovane lomitko. Tim padem je to relativni k tomu mistu. Rozhodne bych vice spolehal na: ./kudera/ziskejkraj.php ./ziskejkraj.php ziskejkraj.php nez relativni s lomitkem. |
||
one_k Profil |
#14 · Zasláno: 13. 3. 2007, 13:44:39
peta
127.0.0.1 loyza IMHO je /kudera/soubor relativni cesta s tim ze se bere od korenoveho adresare webu(pokud to mas nastaveno) |
||
Časová prodleva: 18 let
|
Toto téma je uzamčeno. Odpověď nelze zaslat.
0