Skip to content

Instantly share code, notes, and snippets.

@desandro
Created December 11, 2014 00:10
Show Gist options
  • Save desandro/df78e3b879c9474f7d1f to your computer and use it in GitHub Desktop.
Save desandro/df78e3b879c9474f7d1f to your computer and use it in GitHub Desktop.
filter
sortBy
sortAscending
var r20 = /%20/g;
function param( obj ) {
var params = [];
for ( var key in obj ) {
var value = obj[ key ];
var param = key + '=' + encodeURIComponent( value ).replace( r20, "+" );;
params.push( param );
}
return params.join('&');
}
var rPlus = /\+/g;
function deparam( str ) {
if ( str.indexOf('=') === -1 ) {
return;
}
var obj = {};
var params = str.split('&');
for ( var i=0, len = params.length; i < len; i++ ) {
var param = params[i];
param = param.split('=');
var key = param[0];
var value = param[1];
value = decodeURIComponent( value.replace( rPlus, ' ' ) );
obj[ key ] = value;
}
return obj
}
window.addEventListener('hashchange', function() {
var hash = location.hash.replace( /$#/, '' );
var obj = deparam
}
)
function hashify( obj ) {
window.location.hash = param( obj );
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment