Autor | Zpráva | ||
---|---|---|---|
jan99 Profil * |
#1 · Zasláno: 29. 7. 2012, 22:01:11
Ahoj, mam kod ktery funguje ve vsech prohlizecich (firefox, opera, chrome) ale v IE7 nefunguje (IE8, IE9 nemam moznost vyzkouset).
Soubor http://localhost/funguje.php zapisuje do .txt jestli se tam ten pozadavek GET dostal. Takze pokud pouziju v IE7 kod nize tak vystup v .txt souboru neni zadny, ale jakmile pouziju primo jen create('http://localhost/funguje.php'); bez setTimeoutu tak to funguje (vystup se zapise do testovaciho .txt souboru). Jak to ten setTimeout muze ovlivnit? Proc to bez setTimeoutu funguje a snim ne? <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> <title>Untitled Document</title> <script src="http://code.jquery.com/jquery-latest.min.js"></script> <script type="text/javascript"> $(document).ready(function() { window.setTimeout(function(){ create('http://localhost/funguje.php'); }, 1000); function create(u){ var s = document.createElement('script'); s.type = 'text/javascript'; s.src = u; document.getElementById("test").appendChild(s); } }); </script> </head> <body><div id="test"></div> </body> </html> Diky |
||
Chamurappi Profil |
#2 · Zasláno: 29. 7. 2012, 22:53:00
Reaguji na jana99:
Explorer podporuje setTimeout se dvěma argumenty úplně stejně jako ostatní prohlížeče. V uvedeném kódu nevidím žádný nedostatek (až na to, že načítá úplně zbytečně jQuery), prosím o odkaz na živou ukázku.
|
||
Tori Profil |
jan99:
|
||
jan99 Profil * |
#4 · Zasláno: 30. 7. 2012, 00:58:49
Spíš mi jde o to zjsitit jak může jedna a ta samá věc (kód) fungovat a zároveň nefungovat se setTimeoutem.
Jak už sem napsal uvedený kód naprosto funguje ve všech prohlížečích kromě IE. Taktéž funguje i v IE7 pokud funkci create('http://localhost/funguje.php'); volám přímo. Jakmile ji ale volám v IE7 se spožděním skrz setTimeout tak se GET požadavek vůbec nedostane k cílí tzn. "funguje.php". Nevidím souvislost s obsahem souboru, i kdyby byl prázdný nebo neměl správný formát, maximálně by to zkončilo chybou v JS konzoli, ale stejně to nevysvětluje to proč to jednou funguje a pak zas ne. Jako LIVE ukázka se dá použít ten kód co tu mám stím že jako create(); bude nějaká libovolná url.. |
||
Tori Profil |
jan99:
Zkoušela jsem, skript se načetl jen jednou, pak už (po obnovení stránky) ne, neposlal se požadavek na server. Příčinou byla cache prohlížeče, vyřešilo to přilepení proměnlivého parametru k adrese skriptu (timestamp): function create(u){ var d = new Date(); var s = document.createElement('script'); s.type = 'text/javascript'; s.src = u+'?_t='+d.getTime(); document.getElementById("test").appendChild(s); } |
||
Časová prodleva: 12 let
|
0