开发者

Enabling browser back/front navigation for page loads that don't change URL hash

开发者 https://www.devze.com 2022-12-20 22:00 出处:网络
I have an Ajax site where I have browser navigation hooked up to ajax page loads in cases where navigation results in a change to the URL hash.

I have an Ajax site where I have browser navigation hooked up to ajax page loads in cases where navigation results in a change to the URL hash.

I was wondering what the best way to get navigation history is for ajax loads that don't result in a change to the hash.

So, say I have 'Level 1' links which, on clicking, result in a URL hash change. Something like the jquery history plugin picks that up and invoked my handler, and front/back navigation works fine for these 'Level 1' links.

But I have a set of 'Level 2' links that fetch data using the 'click' handler (which internally do some Ajax fetches) instead of going the URL hash + history plugin route. These currently don't result in a change to the URL/hash. I want these 'Level 2' links to be browser navigation enabled.

It seems like for this to work smoothly, I must change the URL so my guess is any solution here involves decorating the hash some more. One solution that might work but I'd never开发者_C百科 consider seriously is to encode the JS function name I wish to execute and the params into the URL hash somehow, and then have my history load handler invoke that function. Blech!

Anyone have clever ideas about how I can do this?


Hmmm... maybe the jQuery BBQ plugin is what you're looking for?


One thing I did for a project was use hash values like this:

IDProduct-8185--tab-tech--g-8184

Meaning there were 3 parameters: IDProduct = 8185, tab = "tech", and g = 8184. Then, I'd split by "--" and loop over the resulting array. Probably not the most elegant solution, and works for very simple parameter values only. Better have a look at the BBQ plugin that Sean is suggesting first.

0

精彩评论

暂无评论...
验证码 换一张
取 消