Team:TU Delft/header2
From 2010.igem.org
(Difference between revisions)
Line 30: | Line 30: | ||
<script type="text/javascript" src="http://github.com/cowboy/jquery-hashchange/raw/v1.3/jquery.ba-hashchange.js"></script> | <script type="text/javascript" src="http://github.com/cowboy/jquery-hashchange/raw/v1.3/jquery.ba-hashchange.js"></script> | ||
- | <script type="text/javascript" | + | <script type="text/javascript"> |
+ | //Global Vars | ||
+ | var activePage; | ||
+ | |||
+ | // Set document ready callback | ||
+ | $(function() { | ||
+ | // Initialize history plugin. | ||
+ | $(window).hashchange(historyCallback); | ||
+ | rewriteLinks($("#navlist")); | ||
+ | |||
+ | historyCallback(); | ||
+ | |||
+ | // setup hovering | ||
+ | $(".menu_button").hover( | ||
+ | function () { $(this).addClass("hover"); }, | ||
+ | function () { $(this).removeClass("hover"); } | ||
+ | ); | ||
+ | }); | ||
+ | |||
+ | |||
+ | function isDefined(variable) | ||
+ | { | ||
+ | return typeof(window[variable]) != "undefined"; | ||
+ | } | ||
+ | |||
+ | function splitHash(hash) { | ||
+ | var kvpairs = hash.split('&'); | ||
+ | var i; | ||
+ | var kvmap = {}; | ||
+ | for(i=0;i<kvpairs.length;i++) { | ||
+ | var s = kvpairs[i].split('='); | ||
+ | kvmap[s[0]] = s[1]; | ||
+ | } | ||
+ | return kvmap; | ||
+ | } | ||
+ | |||
+ | function loadPage(page) | ||
+ | { | ||
+ | activePage = page; | ||
+ | var url = wgServer + "/Team:TU_Delft/" + page + "?action=render"; | ||
+ | $("#load").fadeOut(200); | ||
+ | if (isDefined('page_init')) | ||
+ | delete page_init; | ||
+ | |||
+ | $.get(url, function(data) { | ||
+ | $("#load").html(data).fadeIn(200).queue(function() { | ||
+ | if(isDefined('page_init')) page_init(); | ||
+ | rewriteLinks($("#load")); | ||
+ | }); | ||
+ | }); | ||
+ | } | ||
+ | |||
+ | function historyCallback() { | ||
+ | var hash = location.hash; | ||
+ | if(hash) { | ||
+ | hash = hash.substring(1); | ||
+ | if(hash.split('=').length > 1) { | ||
+ | var kvmap = splitHash(hash); | ||
+ | var changepage; | ||
+ | |||
+ | // looks a little clumsy, but js AND operator conflicts with mediawiki markup | ||
+ | if (kvmap.page) if(kvmap.page != activePage) changepage = kvmap.page; | ||
+ | |||
+ | if (changepage) { | ||
+ | loadPage(changepage); | ||
+ | } else | ||
+ | $(window).trigger('hashupdate', [ kvmap ]); | ||
+ | } | ||
+ | } else { | ||
+ | loadPage('pages/home'); | ||
+ | } | ||
+ | } | ||
+ | |||
+ | |||
+ | function rewriteLinks(elem) { | ||
+ | $("a",elem).each(function() { | ||
+ | var txt = $(this).text(); | ||
+ | |||
+ | if(this.hash) | ||
+ | this.href = this.hash; | ||
+ | else if(txt != "edit") | ||
+ | this.href = this.href.replace("https://2010.igem.org/Team:TU_Delft/", "#page="); | ||
+ | }); | ||
+ | } | ||
+ | |||
+ | </script> | ||
<!-- Scripting - END /--> | <!-- Scripting - END /--> |
Revision as of 22:02, 22 July 2010