Commit b363be87 authored by Robert Lord's avatar Robert Lord

Update language tabs to properly stay in section, and fix history navigation bug

parent 7dead4c3
...@@ -22,17 +22,25 @@ under the License. ...@@ -22,17 +22,25 @@ under the License.
function activateLanguage(language) { function activateLanguage(language) {
if (!language) return; if (!language) return;
var hash = window.location.hash;
if (hash) hash = hash.replace(/^#+/, '');
// do not reload the page every time the language is changed
if (history) history.pushState({}, '', '?' + language + '#' + hash);
$("#lang-selector a").removeClass('active'); $("#lang-selector a").removeClass('active');
$("#lang-selector a[data-language-name='" + language + "']").addClass('active'); $("#lang-selector a[data-language-name='" + language + "']").addClass('active');
for (var i=0; i < languages.length; i++) { for (var i=0; i < languages.length; i++) {
$(".highlight." + languages[i]).hide(); $(".highlight." + languages[i]).hide();
} }
$(".highlight." + language).show(); $(".highlight." + language).show();
// scroll to the new location of the position
$(window.location.hash).get(0).scrollIntoView(true);
}
// if a button is clicked, add the state to the history
function pushURL(language) {
if (!history) { return; }
var hash = window.location.hash;
if (hash) {
hash = hash.replace(/^#+/, '');
}
history.pushState({}, '', '?' + language + '#' + hash);
} }
function setupLanguages(l) { function setupLanguages(l) {
...@@ -60,6 +68,7 @@ under the License. ...@@ -60,6 +68,7 @@ under the License.
$(function() { $(function() {
$("#lang-selector a").on("click", function() { $("#lang-selector a").on("click", function() {
var language = $(this).data("language-name"); var language = $(this).data("language-name");
pushURL(language);
activateLanguage(language); activateLanguage(language);
return false; return false;
}); });
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment