Autor | Zpráva | ||
---|---|---|---|
ato3 Profil |
#1 · Zasláno: 15. 7. 2008, 15:04:45
Ahoj, mám problém s ajaxem.. všude mi funguje, ale v IE7 nic, řekl bych, že je problém v JS, protože mi ani nevyskočí alert. Např tuhle fci volám onclick="vyber_pilota();" .. je to ojedinělý problém, nebo je známé, že se taková chyba vyskytuje?
tady je JS fce pro příklad function vyber_pilota(vyber_pilota) { var hlavicka = document.getElementsByTagName('head')[0]; var dataLoader = document.getElementById('scriptLoader'); var id_clovek = document.getElementById('id_clovek').value; alert(id_clovek); if(dataLoader){ hlavicka.removeChild(dataLoader); } script = document.createElement('script'); script.id = 'scriptLoader'; script.src = "ajax-skript.php?id_clovek=" + id_clovek + "&vyber_pilota=" + vyber_pilota; hlavicka.appendChild(script); return false; } díky za reakce |
||
peta Profil |
#2 · Zasláno: 15. 7. 2008, 15:40:05
ato3
mam zkusenosti s tim, ze ajax v IE nefunguje, pokud neni pusteny z venci nebo pres localhost. Pokud mas problem v ajaxu, neuvedl jsi ajaxovy script. Lze tudiz predpokladat, ze je ajax dobre a chyba je v tom ostatnim? V kazdem pripade, co hlasi JS konzola ve FF / IE / O ? Podle toho, co pises je nejspis problem s objekty, ze se nenactou a program skonci driv nez muze vyskocit alert. Zkus toto: alert(1) var hlavicka = document.getElementsByTagName('head')[0]; alert(2) var dataLoader = document.getElementById('scriptLoader'); alert(3) var id_clovek = document.getElementById('id_clovek').value; alert(4) alert(id_clovek); Ktery alert vyskoci, tam je to mozna jeste dobre. Pred dalsi alert bych pak dal alert(hlavicka). Pokud ti nevyskoci 1,2,3,4 , pak je takovato operace zbytecna a je problem jeste pred tim. |
||
Chamurappi Profil |
#3 · Zasláno: 15. 7. 2008, 15:59:24
Reaguji na ato3:
„je to ojedinělý problém, nebo je známé, že se taková chyba vyskytuje?“ Jaká chyba? Uveď odkaz na živou ukázku. Připadá mi nevhodné nazývat stejně funkci a argument funkce. Jestli ti nevyskakuje ani ten alert, znamená to, že Explorer nenašel element s id="id_clovek". |
||
peta Profil |
#4 · Zasláno: 15. 7. 2008, 20:48:23
ato3
mno, IE ma zajimavou vlastnost, ze on zkusi najit ID a NAME jako promennou. Cili var id_clovek = document.getElementById('id_clovek').value; prepisujes sam sebe, v podstate. Ale to by mohlo fungovat. Chtelo by to zkusit v tvem kodu :) |
||
ato3 Profil |
#5 · Zasláno: 16. 7. 2008, 17:11:24
Pro upřesnění zde uvádím příklad, který nefunguje v IE6 i 7. Část funguje, pro porovnání se podívejte v mozille, jak to má fungovat.
http://akvarium.navipro.cz/ota/piloti.php |
||
Chamurappi Profil |
#6 · Zasláno: 16. 7. 2008, 17:37:19
Reaguji na petu:
„IE ma zajimavou vlastnost, ze on zkusi najit ID a NAME jako promennou“ Tuto vlastnost „var“ vždy obejde. Reaguji na ato3: Explorer neumí měnit innerHTML tabulky. To je celý problém. |
||
ato3 Profil |
#7 · Zasláno: 16. 7. 2008, 17:54:27
Chamurappi
Díky, zjistím co s tím, hlavně, že už snad vím kde je chyba. |
||
peta Profil |
#8 · Zasláno: 17. 7. 2008, 07:39:22
ato3
Budu predpokladat, ze to byl jediny problem... Muzes prepisovat celou tabulku nebo pouzit appendChild. <div id=tabulka></div> tabulka.innerHTML = '<table>...</table>' Chamurappi Mas to vyzkousene i pro funkci play? Mam pocit, ze sveho casu jsem mel dost problem napsat: function play() {...} pro IE. Je mozne, ze by to slo obejit pres var play = function() {...} ale nezkousel jsem to, zatim. Zatim to obchazim zmenou nazvu na game_play() |
||
ato3 Profil |
#9 · Zasláno: 17. 7. 2008, 18:09:36
peta
Takže by stačilo vkládat celou tabulku i s tagem <table> do divu? Např. <div id=prvek> a sem vložit celou tabulku generovanou v PHP a pomocí JS vloženou do dokumentu </div> Nevkládat jen obsah tabulky bez začátečního a konečnýho tagu? To mi nepřijde zas tak semantické, ale je pravda, že u takového webu semantika nehraje příliš roli. |
||
ato3 Profil |
#10 · Zasláno: 17. 7. 2008, 19:54:22
peta
Jak tak na to koukám, funguje to, tak, že musím vložit celou tu tabulku do divu s id. Ještě mi v IE nefunguje jedna věc. Vložení option do selectu, kde ma select nejaky id. Musím ty option vložit i se selectem do divu? Jdu to vyzkoušet.. |
||
peta Profil |
#11 · Zasláno: 18. 7. 2008, 08:02:17
ato3
viz Chamurappi, IE ma problem s upravou tabulky. V pripade innerHTML funguje vypsani cele tabulky. To jsem tim chtel rici. Toto reseni muze byt silene pomale pri vetsi tabulce, rekneme 10x50, 50x50 a pod. Nevim, jak to resis ty, jestli jde o ajaxove usporne reseni, pak bych tabulku prevedl na JS pole a pridaval do tohoto pole radky. A podle tohoto pole pak generoval tabulku. Ja jen aby te nenapadla ta silenost zbytecne posilat celou tabulku. Samozrejme i to jde a v jistych pripadech je to lepsi. Dalsi moznosti je pouzit JS DOM, funkce appendChild. Zakladem prace je umet take hledat priklady sam: Google.com table add row javascript S options je to podobne. Funguje vypsat cely select. Tam problem neni. Jenze tady funguje i normalni pridavani. Opet se staci podivat po inetu... http://www.volny.cz/peter.mlich/www.htm#mssub12 http://www.volny.cz/peter.mlich/www.htm#main6 |
||
Časová prodleva: 17 let
|
0