Experimentální implementace historie – fungují tlačítka zpět a vpřed v prohlížeči i v aplikaci (v navigační liště), ale nepracuje úplně správně.
Běží v nekonečné smyčce s čekáním 200 ms. Procházení historie nemění SQL příkaz (záměrně), ale přesto někdy nepracuje tak, jak se čeká.
1.1 --- a/java/sql-vyuka/web/hlavni.js Wed Jun 03 02:09:23 2009 +0200
1.2 +++ b/java/sql-vyuka/web/hlavni.js Wed Jun 03 22:25:45 2009 +0200
1.3 @@ -91,13 +91,15 @@
1.4 }
1.5
1.6 function ajaxPruvodceZpet() {
1.7 - /** TODO: historie navigace */
1.8 - alert('Tato funkce se teprve připravuje.');
1.9 + try {
1.10 + window.back();
1.11 + } catch (e) { }
1.12 }
1.13
1.14 function ajaxPruvodceVpred() {
1.15 - /** TODO: historie navigace */
1.16 - alert('Tato funkce se teprve připravuje.');
1.17 + try {
1.18 + window.forward();
1.19 + } catch (e) { }
1.20 }
1.21
1.22 function ajaxPruvodceNasledujici() {
1.23 @@ -113,7 +115,8 @@
1.24
1.25 }
1.26
1.27 -function ajaxPruvodceNaviguj(akcePruvodce, id, kod) {
1.28 +function ajaxPruvodceNaviguj(akcePruvodce, id, kod) {
1.29 + navigaceProhlizecem = false;
1.30 if (ajax.readyState == 4 || ajax.readyState == 0) {
1.31 ajax.open("POST", 'ajax.jspx?akce=napoveda&pruvodce=' + encodeURIComponent(akcePruvodce) + '&idPruvodce=' + encodeURIComponent(id) + '&kodPruvodce=' + encodeURIComponent(kod), true);
1.32 ajax.onreadystatechange = function() {
1.33 @@ -164,12 +167,20 @@
1.34 window.location.hash = 'sql=' + encodeURIComponent(getSQL());
1.35 }
1.36 }
1.37 +
1.38 +/**
1.39 + * Načte uloženou pozici průvodce.
1.40 + */
1.41 +function nactiURL() {
1.42 + nactiURL(false);
1.43 +}
1.44 +
1.45 /**
1.46 * Načte uložený stav aplikace z URL (SQL příkaz, průvodce).
1.47 */
1.48 -function nactiURL() {
1.49 +function nactiURL(nacistSQL) {
1.50 /** Načteme uživatelův SQL příkaz z URL do vstupního pole */
1.51 - if (getParametr('sql')) {
1.52 + if (nacistSQL && getParametr('sql')) {
1.53 zobraz(getParametr('sql'), vstupniPole);
1.54 }
1.55
1.56 @@ -182,5 +193,19 @@
1.57 }
1.58
1.59 window.onload = function() {
1.60 - nactiURL();
1.61 -}
1.62 \ No newline at end of file
1.63 + nactiURL(true);
1.64 +}
1.65 +
1.66 +var locationHash = location.hash;
1.67 +var navigaceProhlizecem = false;
1.68 +
1.69 +setInterval(function() {
1.70 + if (location.hash != locationHash) {
1.71 + if (navigaceProhlizecem) {
1.72 + nactiURL();
1.73 + }
1.74 + navigaceProhlizecem = false;
1.75 + locationHash = location.hash;
1.76 + }
1.77 +}, 200);
1.78 +