From a76caf717fd2c60f30bc62baa2522a16e4467268 Mon Sep 17 00:00:00 2001 From: Peter Wu Date: Wed, 4 Mar 2015 17:02:38 +0100 Subject: Initial commit --- js/main.js | 39 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 39 insertions(+) create mode 100644 js/main.js (limited to 'js') diff --git a/js/main.js b/js/main.js new file mode 100644 index 0000000..5e6816e --- /dev/null +++ b/js/main.js @@ -0,0 +1,39 @@ +/* jshint browser:true, devel:true */ +(function() { + 'use strict'; + + /* loads a page into view and execute scripts */ + function loadContent(name, text) { + var contentElement = document.getElementById('content'); + contentElement.innerHTML = text; + document.body.dataset.page = name; + } + + /* tries to navigate to a page */ + function selectPage(page) { + var pages = 'home studying curriculum campus career'.split(' '); + if (pages.indexOf(page) == -1) { + // TODO: 404 + console.log("404 " + page); + return false; + } + console.log("Loading " + page); + var http = new XMLHttpRequest(); + http.onload = function() { + loadContent(page, http.responseText); + }; + http.open('get', 'pages/' + page + '.html'); + http.send(null); + return true; + } + + addEventListener('hashchange', function(ev) { + var m = /#\/(.+)/.exec(ev.newURL); + if (!m) + return; + selectPage(m[1]); + }); + + // Tries to load the current page, falling back to "home" for unknown URLs. + selectPage(location.hash.replace(/^#\//, '')) || selectPage('home'); +})(); -- cgit v1.2.1