;(function($) { $.extend({ hash : function(name , value) { function isString(str) { return typeof str == 'string' && Object.prototype.toString.call(str) === '[object String]'; } if(!isString(name) || $.trim(name) == '') return; var reg = new RegExp("[&|#]" + name + "=([^&]*)" , "i"); var hash = location.hash; if(value || value === null) { hash = hash.replace(reg , '').replace(/^[#|&]/ , ''); if(value !== null) { //set a hash location.hash = hash == '' ? name + "=" + encodeURIComponent(value) : hash + "&" + name + "=" + encodeURIComponent(value) ; } else { //delete a hash location.hash = hash; } } else { //get a hash value if(reg.test(hash)) { return decodeURIComponent(RegExp.$1); } else { return ''; } } } }); })(jQuery);