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á.
2 const vstupniPole = 'vstupniPole';
3 const vystupniPole = 'vystupniPole';
4 const napovedniPole = 'napovedniPole';
8 * Aby to fungovalo i v MSIE 6.
9 * @return AJAXový objekt.
11 function getXmlHttpRequestObject() {
12 if (window.XMLHttpRequest) {
13 return new XMLHttpRequest();
14 } else if(window.ActiveXObject) {
15 return new ActiveXObject("Microsoft.XMLHTTP");
17 alert("Váš prohlížeč nepodporuje AJAX. Pořiďte si méně zastaralý prohlížeč, nejlépe Firefox.");
22 /** Náš AJAXový objekt. */
23 var ajax = getXmlHttpRequestObject();
26 * Vrací vstup od uživatele.
27 * @return SQL příkaz zadaný uživatelem.
30 return document.getElementById(vstupniPole).innerHTML;
34 * Zobrazí text na požadovaném místě.
35 * @param text text k zobrazení
36 * @param kde id prvku, do kterého se má text vypsat
38 function zobraz(text, kde) {
39 document.getElementById(kde).innerHTML = text + '<p> <!-- Šťastné hackování ;-) --></p>';
43 * Zobrazí text ve výstupním poli.
44 * @param text text k zobrazení
46 function zobrazVystup(text) {
47 zobraz(text, vystupniPole);
51 * Zobrazí text ve vstupním poli.
52 * Požijeme pro načtení SQL příkazu z historie.
53 * @param text text k zobrazení
55 function zobrazVstup(text) {
56 zobraz(text, vstupniPole);
60 * Zobrazí text ve poli pro nápovědu.
61 * @param text text k zobrazení
63 function zobrazNapovedu(text) {
64 zobraz(text, napovedniPole);
67 /** Jednoduchá AJAXová funkce, načte obsah souboru a zobrazí ho ve výstupním okně. */
68 function ajaxVykonatSQL() {
69 if (ajax.readyState == 4 || ajax.readyState == 0) {
70 ajax.open("GET", 'vysledek.html', true);
71 ajax.onreadystatechange = vykonatSQLVypis;
74 //zobrazNapovedu('Nějaká nápověda k danému příkazu.');
75 //zobrazNapovedu(escape(getSQL()));
78 /** Pomocná funkce – postará se o vypsání v pravou chvíli. */
79 function vykonatSQLVypis() {
80 if (ajax.readyState == 4) {
81 zobrazVystup(ajax.responseText);
86 /** Jednoduchá AJAXová funkce, načte obsah souboru a zobrazí ho ve výstupním okně. */
87 function ajaxZobrazitHistorii() {
88 if (ajax.readyState == 4 || ajax.readyState == 0) {
89 ajax.open("GET", 'historie.html', true);
90 ajax.onreadystatechange = zobrazitHistoriiVypis;
95 /** Pomocná funkce – postará se o vypsání v pravou chvíli. */
96 function zobrazitHistoriiVypis() {
97 if (ajax.readyState == 4) {
98 zobrazVystup(ajax.responseText);