html/hlavni.js
author František Kučera <franta-hg@frantovo.cz>
Sun, 07 Apr 2013 18:38:36 +0200
changeset 81 6fb319847482
parent 6 817ec319b143
permissions -rw-r--r--
Oprava: Obecné ECMAScriptové nahrazování řetězců.
Chyba se projevovala v Chromiu, ve FF to fungovalo.
Při kliknutí na SQL v průvodci (např. „Restrikce – operátory“), které obsahuje víc > se nahradil jen první výskyt (ignorování nestandardního "g").
https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/String/replace
franta-hg@3
     1
/** ID html prvků */
franta-hg@3
     2
const vstupniPole = 'vstupniPole';
franta-hg@3
     3
const vystupniPole = 'vystupniPole';
franta-hg@3
     4
const napovedniPole = 'napovedniPole';
franta-hg@3
     5
franta-hg@3
     6
franta-hg@2
     7
/**
franta-hg@2
     8
 * Aby to fungovalo i v MSIE 6.
franta-hg@2
     9
 * @return AJAXový objekt.
franta-hg@2
    10
 */
franta-hg@2
    11
function getXmlHttpRequestObject() {
franta-hg@2
    12
    if (window.XMLHttpRequest) {
franta-hg@2
    13
        return new XMLHttpRequest();
franta-hg@2
    14
    } else if(window.ActiveXObject) {
franta-hg@2
    15
        return new ActiveXObject("Microsoft.XMLHTTP");
franta-hg@2
    16
    } else {
franta-hg@2
    17
        alert("Váš prohlížeč nepodporuje AJAX. Pořiďte si méně zastaralý prohlížeč, nejlépe Firefox.");
franta-hg@2
    18
        return null;
franta-hg@2
    19
    }
franta-hg@2
    20
}
franta-hg@2
    21
franta-hg@2
    22
/** Náš AJAXový objekt. */
franta-hg@2
    23
var ajax = getXmlHttpRequestObject();
franta-hg@2
    24
franta-hg@2
    25
/**
franta-hg@3
    26
 * Vrací vstup od uživatele.
franta-hg@3
    27
 * @return SQL příkaz zadaný uživatelem.
franta-hg@3
    28
 **/
franta-hg@3
    29
function getSQL() {
franta-hg@3
    30
    return document.getElementById(vstupniPole).innerHTML;
franta-hg@3
    31
}
franta-hg@3
    32
franta-hg@3
    33
/**
franta-hg@2
    34
 * Zobrazí text na požadovaném místě.
franta-hg@2
    35
 * @param text text k zobrazení
franta-hg@2
    36
 * @param kde id prvku, do kterého se má text vypsat
franta-hg@2
    37
 **/
franta-hg@2
    38
function zobraz(text, kde) {
franta-hg@4
    39
    document.getElementById(kde).innerHTML = text + '<p>&nbsp;<!-- Šťastné hackování ;-) --></p>';
franta-hg@2
    40
}
franta-hg@2
    41
franta-hg@2
    42
/**
franta-hg@2
    43
 * Zobrazí text ve výstupním poli.
franta-hg@2
    44
 * @param text text k zobrazení
franta-hg@2
    45
 **/
franta-hg@2
    46
function zobrazVystup(text) {
franta-hg@3
    47
    zobraz(text, vystupniPole);
franta-hg@2
    48
}
franta-hg@2
    49
franta-hg@2
    50
/**
franta-hg@5
    51
 * Zobrazí text ve vstupním poli.
franta-hg@5
    52
 * Požijeme pro načtení SQL příkazu z historie.
franta-hg@5
    53
 * @param text text k zobrazení
franta-hg@5
    54
 **/
franta-hg@5
    55
function zobrazVstup(text) {
franta-hg@5
    56
    zobraz(text, vstupniPole);
franta-hg@5
    57
}
franta-hg@5
    58
franta-hg@5
    59
/**
franta-hg@2
    60
 * Zobrazí text ve poli pro nápovědu.
franta-hg@2
    61
 * @param text text k zobrazení
franta-hg@2
    62
 **/
franta-hg@2
    63
function zobrazNapovedu(text) {
franta-hg@3
    64
    zobraz(text, napovedniPole);
franta-hg@2
    65
}
franta-hg@2
    66
franta-hg@2
    67
/** Jednoduchá AJAXová funkce, načte obsah souboru a zobrazí ho ve výstupním okně. */
franta-hg@5
    68
function ajaxVykonatSQL() {
franta-hg@2
    69
    if (ajax.readyState == 4 || ajax.readyState == 0) {
franta-hg@6
    70
        ajax.open("GET", 'vysledek.html', true);
franta-hg@5
    71
        ajax.onreadystatechange = vykonatSQLVypis;
franta-hg@2
    72
        ajax.send(null);
franta-hg@2
    73
    }
franta-hg@2
    74
    //zobrazNapovedu('Nějaká nápověda k danému příkazu.');
franta-hg@3
    75
    //zobrazNapovedu(escape(getSQL()));
franta-hg@2
    76
}
franta-hg@2
    77
franta-hg@2
    78
/** Pomocná funkce – postará se o vypsání v pravou chvíli. */
franta-hg@5
    79
function vykonatSQLVypis() {
franta-hg@2
    80
    if (ajax.readyState == 4) {
franta-hg@2
    81
        zobrazVystup(ajax.responseText);
franta-hg@2
    82
    }
franta-hg@2
    83
}
franta-hg@5
    84
franta-hg@5
    85
franta-hg@5
    86
/** Jednoduchá AJAXová funkce, načte obsah souboru a zobrazí ho ve výstupním okně. */
franta-hg@5
    87
function ajaxZobrazitHistorii() {
franta-hg@5
    88
    if (ajax.readyState == 4 || ajax.readyState == 0) {
franta-hg@5
    89
        ajax.open("GET", 'historie.html', true);
franta-hg@5
    90
        ajax.onreadystatechange = zobrazitHistoriiVypis;
franta-hg@5
    91
        ajax.send(null);
franta-hg@5
    92
    }
franta-hg@5
    93
}
franta-hg@5
    94
franta-hg@5
    95
/** Pomocná funkce – postará se o vypsání v pravou chvíli. */
franta-hg@5
    96
function zobrazitHistoriiVypis() {
franta-hg@5
    97
    if (ajax.readyState == 4) {
franta-hg@5
    98
        zobrazVystup(ajax.responseText);
franta-hg@5
    99
    }
franta-hg@5
   100
}