hedera-web/js/vn/url.js

71 lines
1.3 KiB
JavaScript
Raw Normal View History

/**
* Class to handle the URL.
2022-05-26 06:08:31 +00:00
*/
2016-09-26 09:28:47 +00:00
module.exports =
{
/**
* Gets the value of a URL variable.
*
* @param {string} key The variable name
2022-05-26 06:08:31 +00:00
*/
2022-11-16 01:46:44 +00:00
getQuery(key) {
var regExp = new RegExp('[\?\&]'+ key +'=([^\&]*)(\&?)', 'i');
var value = location.search.match(regExp);
return value ? value[1] : value;
}
/**
* Sets the value of a URL variable.
*
* @param {string} key The variable name
* @param {string} value The new value
2022-05-26 06:08:31 +00:00
*/
2022-11-16 01:46:44 +00:00
,setQuery(key, value) {
var changed = true;
var found = false;
var newPair = key +'='+ value;
var kvPairs = location.search.substr(1).split('?');
for (var i = 0; i < kvPairs.length; i++) {
var kvPair = kvPairs[i].split('=', 1);
if (kvPair[0] == key) {
if (kvPair[1] != value)
kvPairs.splice(i, 1, newPair);
else
changed = false;
found = true;
break;
}
}
if (!found)
kvPairs.push(newPair);
if (changed)
document.location.hash = '?'+ kvPairs.join('&');
}
2022-11-16 01:46:44 +00:00
,makeUri(map) {
var post = '';
for (var key in map) {
var value = map[key];
if (value === null || value === undefined)
continue;
if (typeof value == 'boolean')
value = value ? '1' : '0';
if (post.length > 2)
post += '&';
post += encodeURIComponent(key) +'='+ encodeURIComponent(value);
}
return post;
}
};
2016-09-26 09:28:47 +00:00