summaryrefslogtreecommitdiff
path: root/contrib/site/js/parseLocationHref.js
diff options
context:
space:
mode:
authorChristian Pointner <equinox@spreadspace.org>2018-02-26 23:35:36 +0100
committerChristian Pointner <equinox@spreadspace.org>2018-02-26 23:35:36 +0100
commit0e9bbbf754bf8c2ee0f2a37b9a05fecd884bb42e (patch)
treedd5e2ed16e95c05919ccbf7389a14865af0ea674 /contrib/site/js/parseLocationHref.js
parentadded stream-site nginx (diff)
new www stuff
Diffstat (limited to 'contrib/site/js/parseLocationHref.js')
-rw-r--r--contrib/site/js/parseLocationHref.js53
1 files changed, 53 insertions, 0 deletions
diff --git a/contrib/site/js/parseLocationHref.js b/contrib/site/js/parseLocationHref.js
new file mode 100644
index 0000000..ba2cd5b
--- /dev/null
+++ b/contrib/site/js/parseLocationHref.js
@@ -0,0 +1,53 @@
+function parseLocationHref() {
+ var matches = window.location.href.match(/(https?):\/\/(.*)/);
+ if(matches === null) {
+ return null;
+ }
+
+ var uri = {};
+ uri.scheme = matches[1];
+ uri.servername = '';
+ uri.path = [];
+ uri.query = [];
+ uri.fragment = '';
+
+ if(matches[2].indexOf('/') < 0) {
+ uri.servername = parts[2];
+ return uri;
+ }
+
+ var parts = matches[2].split('/');
+ uri.servername = parts[0];
+ uri.path = parts.slice(1);
+
+ var tmp = uri.path[uri.path.length-1];
+ if(tmp.length > 0) {
+ var qidx = tmp.indexOf('?');
+ var fidx = tmp.indexOf('#');
+
+ var query = '';
+ if(qidx >= 0 && fidx >= 0) {
+ uri.path[uri.path.length-1] = tmp.substring(0, qidx);
+ if(qidx < fidx) {
+ query = tmp.substring(qidx+1, fidx);
+ }
+ uri.fragment = tmp.substring(fidx+1);
+ } else if (qidx >= 0 && fidx < 0) {
+ uri.path[uri.path.length-1] = tmp.substring(0, qidx);
+ query = tmp.substring(qidx+1);
+ } else if (qidx < 0 && fidx >= 0) {
+ uri.path[uri.path.length-1] = tmp.substring(0, fidx);
+ uri.fragment = tmp.substring(fidx+1);
+ }
+ if(query.length > 0) {
+ uri.query = query.split('&');
+ }
+ uri.parameters = {};
+ for (var i = 0; i < uri.query.length; i++) {
+ var parameter = uri.query[i].split('=');
+ uri.parameters[parameter[0]] = parameter[1];
+ }
+ }
+
+ return uri
+}