Autor Zpráva
Tori
Profil
Pěkný den,

pročetla jsem tady témata o detekci zapnutého JavaScriptu u klienta. Nakolik je spolehlivé to řešit pingem? Může to někde nefungovat?

Na začátek každé strany dát:
var tmp = new Image();
tmp.src = 'http://example.com/setJs.php?enabled';

/* setJs.php */
session_start();
$_SESSION['jsSupport'] = (isset($_GET['enabled']) ? 1 : 0);
header("HTTP/1.0 404 Not Found");
Radek9
Profil
Tori:
Nevím, jestli jsem nedělal něco blbě, ale mně v nějakých prohlížečích nefungovalo new Image(). Používal jsem proto místo toho document.createElement("img"). Ale jinak by to fungovat mělo.
Tori
Profil
Radek9:
Díky. Mně teď ale došlo, že nijak nezohledňuji situaci, kdy uživatel přijde se zapnutým JS, ale během brouzdání po webu ho vypne. Zkusím vymyslet něco lepšího.
Kajman_
Profil *
K čemu se může hodit detekovat na straně serveru, zda má návštěvník zapnutý js na stránce, kterou už mu předtím odeslal?

Myslím, že detekce na straně klienta většinou úplně stačí.
Chamurappi
Profil
Reaguji na Tori:
Může to někde nefungovat?
Při vypnutých obrázcích. Jinak by to mělo fungovat všude.

nijak nezohledňuji situaci, kdy uživatel přijde se zapnutým JS, ale během brouzdání po webu ho vypne
To je dost nestandardní situace. S ní se většinou moc rozumně počítat ani nedá. Lépe řečeno, dá se počítat s tím, že člověk JS vypne/zapne při přecházení na jinou stránku, nedá se s tím počítat v rámci jednoho prohlížení jedné stránky. Pokud má člověk zapnutý JS a zobrazená stránka ho nijak neobtěžuje, lze se s velkou jistotou spoléhat na to, že si ho dobrovolně nevypne.


Reaguji na Radka9:
Nevím, jestli jsem nedělal něco blbě, ale mně v nějakých prohlížečích nefungovalo new Image().
Nejspíš dělal, new Image() funguje úplně stejně jako document.createElement("img").


Reaguji na Kajmana:
na straně serveru, zda má návštěvník zapnutý js na stránce, kterou už mu předtím odeslal?
Sice by to byl hodně nestandardní postup, ale nemusel ji odeslat celou :-)
Tori
Profil
Kajman:
Třeba pro případ, že by mezi "základní" a "pohodlnou" verzí stránky byl takový rozdíl, že by se vyplatilo použít jinou šablonu místo JavaScriptové transmutace. Týkalo by se to samozřejmě až druhé a dalších stránek.
Radek9
Profil
Chamurappi:
Tak jsem to asi vážně dělal blbě. Protože mi to v IE nejelo, ale teď jsem to zkoušel a jede to normálně.

Vaše odpověď

Mohlo by se hodit

Neumíte-li správně určit příčinu chyby, vkládejte odkazy na živé ukázky.
Užíváte-li nějakou cizí knihovnu, ukažte odpovídajícím, kde jste ji vzali.

Užitečné odkazy:

Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: