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