AP257
AP257

Reputation: 93863

JavaScript: get and set variables in window.location.hash?

Does anyone have a good solution for getting and setting variables in window.location.hash?

Take a URL that looks like this:

domain.com/#q=1&s=2

What I'd like is an unstressful way - JavaScript or jQuery - to check the values of q and s when the page loads, and change them following events on the page.

I have found some code for getting hash variables, but nothing sensible for setting them.

Am I missing something really obvious, or do I need to roll my own solution (and release it!)?

Thanks.

Upvotes: 6

Views: 8723

Answers (3)

Joseph Astrahan
Joseph Astrahan

Reputation: 9072

JHash didn't work for me in that I wanted it to trigger the routes right away. I personally used routie instead.

It lets you do advanced routing just like jHash but will trigger on page load correctly.

Below will match example.com/#users/john

routie('users/:name', function(name) {
    //name == 'bob';
});

Upvotes: 0

macarthy
macarthy

Reputation: 3069

Haven't used it but there is jHash

jHash allows you to work with the 'location.hash' value in a similar fashion to a server-side query string.

This library utilizes the HTML5 "onhashchange" event, but also includes a fall back to still allow the change notifications to work properly in older web browsers.

Upvotes: 3

Matt Ball
Matt Ball

Reputation: 359956

jQuery BBQ can do this.

See also:


Edit as @gonchuki points out, jQuery.query can also do this.

Upvotes: 1

Related Questions