Autor | Zpráva | ||
---|---|---|---|
mackopu Profil |
#1 · Zasláno: 7. 1. 2009, 16:56:28
Existuje nějaký způsob, jak pomocí javascriptu zjistit, zda je prohlížeč v režimu on-line?
Možné použití: Představme si CD s nabídkou nějakého produktu, která je zobrazována v prohlížeči. V případě, že je uživatel off-line, bude vyzván k připojení, v opačném případě se zobrazí formulář k odeslání objednávky. |
||
Kalby Profil |
#2 · Zasláno: 7. 1. 2009, 18:23:10
Nechapu pojem prohlizec online. Spis zda je uzivatel pripojen k internetu ne? Mozna by to slo napriklad tak, ze bys zkusil otevrit nejaky soubor z internetove adresy a pri chybe by byl nejspis uzivatel offline
|
||
Měsíček Profil |
#3 · Zasláno: 7. 1. 2009, 18:37:21 · Upravil/a: Měsíček
Reaguji na mackopu:
Třeba takhle: <script type="text/javascript"> alert("Jsi v režimu "+(navigator.onLine ? "online." : "offline.")); </script> |
||
Bubák Profil |
#4 · Zasláno: 7. 1. 2009, 19:05:12
Měsíček
Pokud bude uživatel offline, ale nenastaví si ručně do režimu prohlížení offline prohlížeč, tak uvedený skript nic nepozná. |
||
Měsíček Profil |
#5 · Zasláno: 7. 1. 2009, 19:08:07
Reaguji na Bubáka:
"Pokud bude uživatel offline, ale nenastaví si ručně do režimu prohlížení offline prohlížeč, tak uvedený skript nic nepozná." Samozřejmě, ovšem tohle taky není účel, cituji: "Existuje nějaký způsob, jak pomocí javascriptu zjistit, zda je prohlížeč v režimu on-line?", takže asi tak. |
||
mackopu Profil |
#6 · Zasláno: 7. 1. 2009, 19:15:28
Kalby
Jistě, tak bych si to představoval, jen nevím, jak pomocí javascriptu otevřít nějaký soubor na internetu a zpracovat tu chybu. To vše zvládám v PHP, v javascriptu ne. Měsíček To by mohlo být ono. Jen předpokládám, že pokud je prohlížeč v režimu on-line, tak je uživatel i fakticky připojen k internetu. Nebo ne? |
||
Měsíček Profil |
#7 · Zasláno: 7. 1. 2009, 19:18:03
Reaguji na mackopu:
"Jistě, tak bych si to představoval, jen nevím, jak pomocí javascriptu otevřít nějaký soubor na internetu a zpracovat tu chybu. To vše zvládám v PHP, v javascriptu ne. " Příště si rozmysli co napíšeš. Ve svém prvním příspěvku jsi napsal naprosto něco jiného od toho co chceš teď. "To by mohlo být ono. Jen předpokládám, že pokud je prohlížeč v režimu on-line, tak je uživatel i fakticky připojen k internetu. Nebo ne?" Ne. |
||
mackopu Profil |
#8 · Zasláno: 7. 1. 2009, 19:21:58
Tedy to upřesním, protože původní dotaz mohl být opravdu zavádějící.
Existuje nějaký způsob, jak pomocí javascriptu zjistit, zda je uživatel, který si prohlíží stránku, nacházející se na lokálním počítači, momentálně připojen k internetu? |
||
Měsíček Profil |
#9 · Zasláno: 7. 1. 2009, 19:25:40
Reaguji na mackopu:
"Existuje nějaký způsob, jak pomocí javascriptu zjistit, zda je uživatel, který si prohlíží stránku, nacházející se na lokálním počítači, momentálně připojen k internetu?" Ne. |
||
mackopu Profil |
#10 · Zasláno: 7. 1. 2009, 19:39:51
Nic ve zlém, ale což takhle AJAX? Ten přece pracuje se soubory...
Nerad se té myšlenky vzdávám. |
||
Měsíček Profil |
#11 · Zasláno: 7. 1. 2009, 19:44:21
Reaguji na mackopu:
"Nic ve zlém, ale což takhle AJAX? Ten přece pracuje se soubory." Nad tím jsem taky přemýšlel, ale to by se "stránka" nesměla "náchazet na lokálním počítači". AJAX dokáže vzít data pouze ze své domény (tedy z localhostu a nebo z domény kde je skript uložen) .. pomocí AJAXu si nemůžeš vzít data z jiné domény než na které je skript uložen. Je mi líto, ale tudy cesta nepovede. |
||
Chamurappi Profil |
#12 · Zasláno: 7. 1. 2009, 19:45:32 · Upravil/a: Chamurappi
Reaguji na mackopu:
„což takhle AJAX? Ten přece pracuje se soubory...“ AJAX tě nevpustí do jiné domény, natož do jiné zóny. „Existuje nějaký způsob, jak pomocí javascriptu […]“ Vlastně ano. Můžeš velmi snadno udělat přesně to, co potřebuješ. Připoj k té své stránce načítané lokálně externí skript umístěný někde na webu. |
||
_es Profil |
#13 · Zasláno: 7. 1. 2009, 19:52:07
Ak ide o CD katalóg firmy, môže sa pokúsiť stiahnuť nejaký menší obrázok z firemného webu a overiť či sa stiahol.
Alebo to môže ísť overiť externým javascriptovým súborom na firemnej stránke. |
||
mackopu Profil |
#14 · Zasláno: 7. 1. 2009, 20:08:32
Měsíček, Chamurappi
To jsem teda blázen. Použil jsem kus kódu, který používám v jiné aplikaci a funguje to, ačkoliv sahám do úplně jiné domény: <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <meta http-equiv="content-type" content="text/html; charset=windows-1250"> <meta name="generator" content="PSPad editor, www.pspad.com"> <title></title> <script type='text/javascript'> var req; function IsOnline(url) { if(window.XMLHttpRequest) { req = new XMLHttpRequest(); } else if(window.ActiveXObject) { req = new ActiveXObject("Microsoft.XMLHTTP"); } req.open("GET", url, true); req.onreadystatechange = callback; req.send(null); } function callback() { if(req.readyState == 4) { if(req.status == 200) { alert("Jsi on-line"); } else { alert("Jsi off-line"); } } } </script> </head> <body> <script type='text/javascript'> IsOnline('http://seznam.cz'); // možno libovolně změnit za cokoliv existujícího, třeba soubor s formulářem objednávky </script> </body> </html> Že by to nebyl AJAX? „Můžeš velmi snadno udělat přesně to, co potřebuješ. Připoj k té své stránce načítané lokálně externí skript z umístěný někde na webu.“ To zní zajímavě. Mohl bys naznačit něco konkrétnějšího? |
||
Měsíček Profil |
#15 · Zasláno: 7. 1. 2009, 20:13:47
Reaguji na mackopu:
"To zní zajímavě. Mohl bys naznačit něco konkrétnějšího?" Jestli jsem Chamurappiho pochopil tak možná to myslel takhle: <!-- Obsah souboru "test_script.js" bude jen [var test_var = 6;]. --> <script src="http://domena/test_script.js" type="text/javascript"></script> <script type="text/javascript"> alert("Jsi "+((test_var==6)?"online":"offline")); </script> |
||
Bubák Profil |
#16 · Zasláno: 7. 1. 2009, 20:19:12
„Použil jsem kus kódu, který používám v jiné aplikaci a funguje to...“ ...jen v IE.
|
||
Chamurappi Profil |
#17 · Zasláno: 7. 1. 2009, 20:19:57 · Upravil/a: Chamurappi
Reaguji na mackopu:
Ve stránce budeš mít: <form name="formulář" class="offline"> … </form> <script src="http://www.example.com/skript-pro-cd.js"></script> Do „www.example.com/skript-pro-cd.js“ dáš: document.formulář.className = "online"; A v CSS pak nastyluješ obsah formuláře tak, aby různé části byly/nebyly viditelné podle třídy. Třeba. |
||
mackopu Profil |
#18 · Zasláno: 7. 1. 2009, 20:21:58
No vidíte, kluci, pak že to nepůjde. Jedno řešení hezčí než druhé :-)
|
||
_es Profil |
#19 · Zasláno: 7. 1. 2009, 20:42:29
Ten script je navyše možné využiť na rôzne ďalšie veci.
Napríklad pri starom katalógu by sa mohlo vypísať, že je katalóg už neaktuálny a odkázať na aktuálny. |
||
Leo Profil |
#20 · Zasláno: 7. 1. 2009, 21:58:07
On je ovsem problem v tom, ze vychozi nastaveni IE je takove, ze se lokalni javascript (ze souboru pres file:) nespusti vubec, takze nemate co a cim detekovat... Leo
|
||
peta Profil |
#21 · Zasláno: 8. 1. 2009, 12:36:20
1. <img src="http://..." onerror="funkce()">
2. google try catch javascript |
||
Časová prodleva: 15 let
|
0