From 5de24f23a3cba96990b312a5e6564c40d619976d Mon Sep 17 00:00:00 2001
From: Jacek Kowalski <Jacek@jacekk.info>
Date: Wed, 12 Apr 2017 21:30:09 +0000
Subject: [PATCH] Ignore hashchange event on self-inflicted modifications
---
index.js | 11 ++++++++++-
1 files changed, 10 insertions(+), 1 deletions(-)
diff --git a/index.js b/index.js
index 24a3a37..fd3d883 100644
--- a/index.js
+++ b/index.js
@@ -3,6 +3,7 @@
var ttss_refresh = 20000; // 20 seconds
var page_title = document.getElementsByTagName('title')[0];
+var ignore_hashchange = false;
var language = 'en';
var lang_select = document.getElementById('lang-select');
@@ -153,7 +154,9 @@
console.log('loadTimes(' + stopId + ')');
stop_id = stopId;
+ ignore_hashchange = true;
window.location.hash = '#!' + language + stopId;
+ ignore_hashchange = false;
refresh_button.removeAttribute('disabled');
loading_start();
@@ -329,6 +332,9 @@
} else {
setText(refresh_text, lang.enter_stop_name_to_begin);
}
+
+ loadTimes();
+ loadRoute();
}
function change_language(lang) {
@@ -350,17 +356,20 @@
document.body.removeChild(document.getElementById('lang_script'));
document.body.appendChild(script);
+ ignore_hashchange = true;
window.location.hash = '#!' + language + stop_id;
+ ignore_hashchange = false;
}
function hash() {
+ if(ignore_hashchange) return;
+
if(window.location.hash.match(/^#![0-9]+$/)) {
loadTimes(parseInt(window.location.hash.substr(2)));
} else if(window.location.hash.match(/^#![a-z]{2}[0-9]*$/)) {
var stop = parseInt(window.location.hash.substr(4));
if(stop) stop_id = stop;
change_language(window.location.hash.substr(2, 2));
- loadTimes(stop_id);
}
}
--
Gitblit v1.9.1