![]() |
Är det någon som har en bra lösning för att se till att bokmärkning fungerar även när sidan laddas om med Ajax? (Välbekannt problem men jag har inte sett någon bra lösning).
Apache+php5 på servern. |
Skulle väl isåfall vara om du låter ajax hämta data via GET så kan du göra något i stil med:
bokmärke.php?data=data |
Den ända ändring du kan göra i adressfältet utan att sidan laddas om är via
"location.hash". Om du updaterar den till sidans senaste konfiguration vid varje ajax ändring så kan användare boomarka den konfigurationen. Då krävs det givetvis också att js tar en titt på location.hash när sidan är nyladdad för att anpassa sig till den konfiguration du har. Fult, hackigt, webbigt. |
Citat:
Har inte gjort några vidare sökningar på ämnet ännu. Edit: Du menar alltså att man kan ändra i javascriptets location-objekt? |
Säg att användaren surfar in på http://example.com/foo genom att ändra location.hash = "test" så
kan du få http://example.com/foo#test att stå i adressfältet. Sidan laddas inte om. Bokmärker användaren sidan så är det http://example.com/foo#test den bokmärker. Går någon in på http://example.com/foo#baz så är det ditt scripts jobb att kolla på location.hash och ändra om sidan enligt vad "baz" nu betyder. Kolla till exempel på google-reader. Där sparas vilken feed man tittar på i location.hash. Grundtanken var ju att webbläsaren ska positionera fönstret till en anchor/elementid i sidan som har värdet "baz". Detta utnyttjar att sidan inte laddas om, samt att man kan spara värden i location.hash som inte har motsvarande anchor eller elementid. |
Det ändra dryga med detta är det förbenade klick-ljud som ligger som default varje gång location.hash ändras.
|
Smart! Det verkar ju lösa problemet.
Tackar också för den utförliga förklaringen. |
Fungerar fint, men för att slippa mer javascript gör jag en mod_rewrite som hämtar hela filen direkt från bokmärket - dessvärre verkar det inte fungera:
RewriteRule ^#([a-z-]+)$ index.php?p=$1 [PT] Kan det tänkas att hashen inte skickas med requesten till servern? (hashen ska ju finnas inom sidan så det skulle ju ha sin logik). Eller har jag missat något annat? |
Alla tider är GMT +2. Klockan är nu 01:20. |
Programvara från: vBulletin® Version 3.8.2
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Svensk översättning av: Anders Pettersson