OT, ale jen mírně - # v http adrese
Petr Tomasek
tomasek na etf.cuni.cz
Úterý Červenec 15 21:57:38 CEST 2014
On Tue, Jul 15, 2014 at 09:19:39PM +0200, Kosta wrote:
> Můžete mi prosím někdo objasnit, jak se třeba u www.pitaval.cz dostane
> jakýsi token začínající # do adresy?
>
> pokud vlezu na pitaval, tak se mi po cca 1s změní adresní řádek z
> http://www.pitaval.cz/kniha na
> http://www.pitaval.cz/kniha#axzz37ZA2WYvC a to za # tam mám pak stále,
> při brouzdání po pitavalu,
> pokud pitaval opustím a následně ho znovu otevřu, tak se řetězec za #
> změní
> nijak mě to neirituje, jen mě prostě zajímá, jak se to tam dostává :)
>
> --
> S pozdravem
> M Kosťa Kostomlatský
Dobry den!
Cast URL za "#" byla puvodne urcena k tomu, aby se dala identifikovat
cast weboveho dokumentu a napr. odkazovat v ramci jednoho dokumentu.
"Otevreni" takovehoto URL zpusobilo nejen nacteni stranky ale taky
odrolovani textu na danou pozici.
Takze to znamena, ze "otevreni" URL s identickou casti pred "#"
nevyvola (vetsinou) nove nacteni URL (pres HTTP se pak posila jenom
cast pred "#", cili HTTP server o casti za "#" nevi).
Toho se zacalo vyuzivat po mnoha letech k predavani parametru javascriptu.
Javascript totiz dokaze manipulovat URL, takze zmeni cast URL za "#",
ale pritom (a to je dulezite!) takovato manipulace nezpusobi nove nacteni
stranky. Kdyz ale URL date do zalozek nebo ho treba poslete mailem,
tak tam ty parametry ulozene javascriptem zustanou a javascript
na strance si je znovu nacte.
Napriklad tohle vyuzivaly sveho casu mapy.cz aby se pri pohybovani s mapou
promitla sprava poloha do URL a bylo bezproblemove mozne sdilet odkaz
na spravne misto v mape.
Ve vasem pripade asi nekdo chce sledovat, co se danym odkazem deje
i pripade, ze si smazete/zakazete cookies; pripadne, s kym svuj odkaz
sdilite. Teto prasarny se tedy zbavite, kdyz pro dane stranky zakazete
javascript (ten, kdo se vas takhle snazi smirovat si stejne nic jineho
nezaslouzi...)
P.T.
Další informace o konferenci Hw-list