summaryrefslogtreecommitdiffstats
path: root/js/vendor/js-url/url.js
diff options
context:
space:
mode:
Diffstat (limited to 'js/vendor/js-url/url.js')
-rw-r--r--js/vendor/js-url/url.js11
1 files changed, 8 insertions, 3 deletions
diff --git a/js/vendor/js-url/url.js b/js/vendor/js-url/url.js
index e1a26c08c..169f86334 100644
--- a/js/vendor/js-url/url.js
+++ b/js/vendor/js-url/url.js
@@ -2,6 +2,10 @@ window.url = (function() {
function isNumeric(arg) {
return !isNaN(parseFloat(arg)) && isFinite(arg);
}
+
+ function decode(str) {
+ return decodeURIComponent(str.replace(/\+/g, ' '));
+ }
return function(arg, url) {
var _ls = url || window.location.toString();
@@ -56,15 +60,16 @@ window.url = (function() {
if(arg.charAt(0) === '?') { params = (params.split('?')[1] || '').split('#')[0]; }
else if(arg.charAt(0) === '#') { params = (params.split('#')[1] || ''); }
- if(!arg.charAt(1)) { return params; }
+ if(!arg.charAt(1)) { return (params ? decode(params) : params); }
arg = arg.substring(1);
params = params.split('&');
for(var i=0,ii=params.length; i<ii; i++)
{
- param = params[i].split('=');
- if(param[0] === arg) { return param[1] || ''; }
+ param = params[i].split(/(.*?)=(.*)/).filter(Boolean);
+
+ if(param[0] === arg) { return (param[1] ? decode(param[1]) : param[1]) || ''; }
}
return null;