URI encoded hashtags in url, automatically decoded via PushState

I am trying to pull a url using a url encoded hashtag (I am creating a Twitter client). History.js seems to treat the encoded hashcodes (% 23) as encoded URIs in the url, so the url decodes them automatically, so it doesn't cause a state change with such links.

For example url / first /% 23second becomes / first / # second

What can I do without messing up the whole plugin?

+3


source to share


1 answer


If you are hosting the History.js file locally, look inside for a function on an m object called "unescapeString" (or just Ctrl + F in "m.unescapeString".

Then you can change it to this:



m.unescapeString=function(b){
    var c=b,d;

    if(!history.pushState){  //Adding this check.
        for(;;) {
            d = a.unescape(c);

            if (d===c) 
                break;

            c = d;
        }
    }
return c
}

      

This will fix the problem. (I believe this method is used to support browsers that do not support history.pushState)

+6


source







All Articles