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