Autor | Zpráva | ||
---|---|---|---|
manganistan_draselny Profil * |
#1 · Zasláno: 27. 8. 2007, 17:37:43
Dobrý den. Pro systém chatu na svých stránkách (bohužel ještě nejsou vystaveny) používám php+javascriptový systém.
Pro obnovení chatových zpráv používám Javascript, aby nebylo pro pravidelné obnovování zpráv potřeba reloadovat celou stránku. Dotyčný javascript vypadá takto (formulář odkazuje na iframe):
Jak vidíte, k odesílání je použitou dvou způsobů - jednak elementu <input type='submit'> a také elementem <span> který přes onclick spouští odeslání. Oba způsoby spolehlivě fungují pod Operou, ovšem ve Firefoxu a MSIE odeslání přes <span> neodešle žádná POSTdata (serverový skript ohlásí, že není vybrána žádná zpráva i přesto že jsou vybrané) a odeslání přes <input type='submit'> dokonce vůbec neproběhne... Může být na vině systém generování tohoto formuláře? Jak to, že v Opeře fungují korektně obě (input i span) metody odeslání? |
||
Str4wberry Profil |
#2 · Zasláno: 28. 8. 2007, 02:19:53
manganistan_draselny
A nešlo by se bez toho spanu obejít? |
||
manganistan_draselny Profil * |
#3 · Zasláno: 28. 8. 2007, 13:50:10
Jistě. Pokud ten span zakomentuji nebo jej ze skriptu zcela vypustím, zůstane mi obyčejný formulář odesílaný tlačítkem. Ten se ale chová zcela stejně - v Opeře korektně odešle formulář, ve Firefoxu či MSIE prostě neudělá nic... A není to problém serverového skriptu, požadavek od prohlížeče prostě neodejde (to jsem ověřil nejen diagnostikou na straně serveru, ale také snifferem :-(( )...
|
||
manganistan_draselny Profil * |
#4 · Zasláno: 28. 8. 2007, 13:59:37
Ještě dodávám,ten <span> jsem tam měl původně jako jediný způsob odeslání, ale poté, co jsem zjistil že odeslání formuláře přes <span> v FF či MSIE sice spustí serverový skript, ale neodešle žádná POST data, jsem se vrátil k "tradičnímu" <input type='submit'>.
Jaké však bylo mé překvapení, když jsem zjistil že tentokrát se dva ve světě majoritní prohlížeče neuráčí ani odeslat požadavek.... Pokusím se to nejspíš vyřešit jinak, vypadá to na jakousi prapodivnou souhru chyb v mých skriptech a v interpretrech prohlížečů. |
||
manganistan_draselny Profil * |
#5 · Zasláno: 30. 8. 2007, 19:10:51
Prosím omluvte moje zbytečné příspěvky do diskuse, jen pro informaci, pokud budete mít (čistě teoreticky) podobný problém - nespustitelnost formuláře byla zaviněna generováním jednotlivých řádků zvlášť.
Zatímco Opera k takto vygenerovanému objektu přistupuje jako ke kterémukoli jinému, Firefox a MSIE se snaží objekt "inicializovat" již v době generování (tedy přesněji ihned po spuštění prvního innerHTML obsahujícího <form> tag), proto jsou připisováním dalšího kódu poněkud "zmateny" (na to mě přivedla skvělá funkce DOM inspector ve Firefoxu) a výsledný objekt (formulář) nemusí (spíše nemůže) fungovat správně. Než abych zkoušel např. appendChild apod., prostě jsem celý formulář vygeneroval do proměnné (myslím, že délka 65535 znaků není v tomto chatu dosažitelná) a proměnnou jsem potom přes innerHTML poslal na stránku - funguje to výborně. |
||
Časová prodleva: 17 let
|
0