Vybrané metody JavaScriptu


Vybrané metody a vlastnosti

Window

Metody objektu window jsou např.:
window.alert("zprava")
Název objektu window, jakožto hlavního objektu můžeme vynechat:
alert("zpráva")
prompt("výzva k zadání hodnoty","implicitní hodnota")
confirm("otázka")

     

Otevření okna prohlížeče:

window.open(url,název okna,parametry okna);

URL - adresa html dokumentu (např. kontakty.htm) nebo obrázku (např. foto/pyramidy.jpg) nebo webové stránky (http://webowebu.phorum.cz/html/obrazky.htm)

Název okna - nezadáme-li tento parametr nebo zadáme-li "_blank", otevře se nové nepojmenované okno prohlížeče. Zadáme-li určitý název, můžeme jej použít např. v odkazech v parametru target.

Parametry okna - menubar (menu), toolbar (panel nástrojů), location (pole adresy), status (stavový řádek), width (šířka okna), height (výška okna), top (vzdálenost shora), left (vzdálenost zleva), resizable (možnost zvětšit okno). Chceme-li např. otevřít okno bez menu a panelu nástrojů, uvedeme "menubar=no,toolbar=no" (ne všechny parametry fungují ve všech prohlížečích).
Má-li prohlížeč nastaveno otevření nového okna jako nového panelu (záložky), pak všechny tyto parametry ignoruje. Automatické otevírání nových oken může být prohlížečem blokováno.

   

Zavření okna:

Okno musí být otevřeno pomocí metody open. Do proměnné uložíme odkaz na nové okno.

var win = window.open("divy_sveta/visute_zahrady.png");
win.close();
   

Zavření aktuálního okna přímo z něj:

window.close(); //zavření aktuálního okna (musí být vytvořeno metodou open)

viz předchozí tlačítko zdrojový kód a v jím otevřeném okně tlačítko Zavřít

Aktivování okna (přenesení do popředí):

Otevřeme-li nové okno, pak po kliknutí na další tlačítko (odkaz) se toto okno dostane do pozadí. Otevřeme-li další html dokument nebo obrázek do okna se stejným názvem, zůstane toto okno i po načtení nového obsahu v pozadí (viz první ukázka). Musíme provést jeho aktivaci.

var win = window.open("divy_sveta/majak.png");
win.focus();
     

Nastavení velikosti okna prohlížeče, posunutí a rolování:

window.resizeTo(1000,800);  //nastavení velikosti aktuálního okna na 1000x800px
window.resizeBy(-100,50);   //zmenšení šířky o 100px a zvětšení výšky o 50px
window.moveTo(400,200);     //posunutí levého horního rohu okna na souřadnice 400,200
window.moveBy(-100,50);     //posunutí okna o 100px vlevo a 50px dolů
window.scrollTo(100,300);   //rolování na pozici 100,300
window.scrollBy(0,200);     //rolování o 200px dolů
     

Location

location.href="fotogalerie2.htm";  //přesměrování na stránku fotogalerie2.htm

Časování

var cas=setInterval("dalsi()",2000); //nastavení intervalu opakování na 2000 milisekund, tj. 2 sekundy
clearInterval(cas);                  //zrušení opakování 

Document

Metody objektu document jsou např.:
document.write("zpráva")
document.writeln("zpráva")
document.getElementById("id")
document.getElementsByName("name")
document.getElementsByTagName("tag")

Metody write a writeln lze použít pouze ve skriptu prováděném při vytváření stránky. Do hotového dokumentu již nelze těmito metodami zapisovat. Lze měnit objekty dokumentu. Na objekty se můžeme odkázat prostřednictvím metod get nebo DOM.

History

Navigator

Screen

Date

Vytvoření objektu datum:

var datum = new Date();              //aktuální - dnešní datum
var datum = new Date(rok,měsíc,den); //určité datum (měsíc je třeba zadat o 1 méně)
var datum = new Date(rok,měsíc,den,hodiny,minuty,sekundy);
var datum = new Date(milisekundy);   //počet milisekund od 1.1.1970

Formátování datumu:

datum.toLocaleString();       //formát datumu a času podle nastavení počítače

Den, měsíc, rok, den v týdnu, hodiny, minuty, sekundy z datumu:

datum.getDate();       //číslo dne
datum.getMonth();      //číslo měsíce (o 1 méně): 0-leden, 1-únor, 2-březen …
datum.getFullYear();   //rok
datum.getDay();        //číslo dne v týdnu: 0-neděle, 1-pondělí, 2-úterý, … 6-sobota
datum.getHours();      //hodiny
datum.getMinutes();    //minuty
datum.getSeconds();    //sekundy

Nastavení dne, měsíce, roku, hodin, minut, či sekund:

datum.setDate();       //den
datum.setMonth();      //měsíc (o 1 méně): setMonth(3) nastaví duben
datum.setFullYear();   //rok - čtyřciferně
datum.setHours();      //hodiny
datum.setMinutes();    //minuty
datum.setSeconds();    //sekundy

Porovnání datumů, zjištění počtu uplynulých dnů:

datum.getTime();       //počet milisekund od 1.1.1970

String

Vytvoření textového řetězce:

var text = new String("nějaký text");       //pomocí konstruktoru
var text = "nějaký text";                   //vložením hodnoty
var text = document.forms["formular"].jmeno.value;
var text = document.getElementsByName("jmeno")[0].value;
var text = document.getElementById("jm").value;
                                            //získáním textové hodnoty

Získanou textovou hodnotou nemusí být pouze obsah textového pole formuláře, ale i jiné vlastnosti objektů, např. src, title, width, height, apod.

Délka textového řetězce, jednotlivé znaky:

text.length           //délka textu (vlastnost objektu text)
text.charAt(index)    //znak na i-té pozici textu (metoda objektu text)
                      //znaky textového řetězce jsou indexovány od 0 - viz pole

Převod na malá či velká písmena:

text.toLowerCase()    //převod textu na malá písmena
text.toUpperCase()    //převod textu na velká písmena

Vyhledání pozice znaku či části řetězce:

text.indexOf(hledaná část, pozice)    //index - pozice hledané části textu
                      //není-li pozice zadána, hledá se od začátku textu
                      //je-li pozice zadána, hledá se od tohoto místa
                      //není-li hledaná část nalezena, je výsledkem -1
text.lastIndexOf(hledaná část, pozice)
                      //index hledané části - vyhledává od konce textu

Rozdělení řetězce na části:

text.substr(pozice, délka)    //část řetězce od zadané pozice
                      //není-li délka zadána, bere se zbytek textu do konce řetězce
text.substring(začátek, konec)
                      //část řetězce od zadané začáteční pozice do koncové pozice
text.split(oddělovač, kolikrát)
            //není-li zadáno kolikrát, rozdělí se text ve všech místech oddělovače
            //jednotlivé části lze uložit do pole

Nahrazení části řetězce jiným řetězcem:

text.replace(nahrazovaná část, nový řetězec)
            //nahrazení části řetězce jiným znakem či textem


Převod čísla na řetězec:

Při provedení řetězcové operace, např. spojování řetězců pomocí operátoru + je číslo automaticky převedeno na řetězec. Převod můžeme provést též metodou:

cislo.toString()   //převedení čísla na řetězec

Převod řetězce na číslo:

Při provedení matematické operace, např. násobení, odčítání, inkrementace apod. (pozor + je jak matematický tak řetězcový operátor), se řetězec (osahuje-li zápis čísla) automaticky převede na číslo.

celeCislo = parseInt(text)
            //převedení na celé číslo
realCislo = parseFloat(text)
            //převedení na reálné číslo
jeCislo = isFinite(text)
            //zjištění, zda text představuje celé nebo reálné číslo (true)

Math

Absolutní hodnota, mocnina, odmocnina:

Zaokrouhlování:

Math.floor(cislo);    //zaokrouhlí dolů na celé číslo
Math.ceil(cislo);     //zaokrouhlí nahoru na celé číslo

Náhodná čísla:

Math.random()                    //náhodné reálné číslo z intervalu <0,1)
Math.floor(Math.random()*6)+1    //náhodné číslo 1, 2, 3, 4, 5, 6
Math.ceil(Math.random()*6)       //náhodné číslo 1, 2, 3, 4, 5, 6 
                     //pravděpodobnost, že random() bude čistá 0, je mizivá

Array

RegExp

Regulární výrazy představují masku textových řetězců, vytvořenou pomocí speciálních zástupných znaků (obdobně jako * a ? při vyhledávání souborů).

Pomocí metody test můžeme zjistit, zda textový řetězec odpovídá masce regulárního výrazu. S regulárními výrazy pracují i další metody - viz dále.

Znaky:

Regulární výrazy jsou tvořeny znaky písmen, číslic a ostatními znaky, jako např. @, mezera apod.

Znaky \, ^, $, ., [, ], |, (, ), ?, *, +, {, } mají speciální funkce. Mají-li být součástí textu, musí být před nimi uvedeno \ (zpětné lomítko). Například .cz musí být zapsáno \.cz.

ZnakVýznamPříkladPopis
.libovolný znak
[]interval nebo množina znaků[0-9]
[A-Za-z]
[áéěíóúůžščřďťň]
číslice 0 až 9
velká a malá písmena
diakritická písmena
[^]neobsahující znaky[^A-Z]neobsahující velká písmena
{}počet{5}
{2,4}
{6,}
5
2 až 4
6 a více
?počettotéž jako {0,1}žádný nebo jeden
*počettotéž jako {0,}žádný nebo libovolný počet
+počettotéž jako {1,}jeden nebo libovolný počet
neuvedeme-li počettotéž jako {1}jeden
^začátek řetězce
$konec řetězce
()podvýraz
|nebo

Příklady:

Regulární výrazPopisVýznamVyhovující řetězce - příklady
@řetězec obsahující @e-mailová adresa123jana@seznam.cz
seznamřetězec obsahující slovo seznaminternetové adresy seznamuwww.seznam.cz, slovnik.seznam.cz
^wwwřetězec začínající wwwinternetová adresawww.google.com, www.seznam.cz
cz$řetězec končící czinternetová adresa, e-mailwww.seznam.cz, mapy.cz
^[0-9]{9}$řetězec složený z 9 číslictelefonní číslo725489321
^[0-9]{3} ?[0-9]{2}$řetězec obsahující 3 číslice, pak 1 nebo žádnou mezeru, a nakonec 2 číslicePSČ12500, 530 01
^[0-9]{6}/?[0-9]{4}$řetězec obsahující 6 číslic, pak může být lomítko, a nakonec 4 číslicerodné číslo750321/0110, 7503210110
^[0-9]{1,2}[\.][0-9]{1,2}[\.][0-9]{4}$řetězec obsahující 1 až 2 číslice, pak tečku, další 1 nebo 2 číslice, tečku a nakonec 4 číslicedatum5.2.2010, 12.3.2011, 21.12.2011
^[A-Za-z0-9]{6,}$řetězec obsahující pouze malá či velká písmena nebo číslice, minimálně 6 znakůpřihlašovací jméno, hesloKuba123, XXLssm
^[A-ZŽŠČŘ][a-záéěíóúůžščřďťň]+$řetězec obsahující pouze písmena včetně diakritiky, na začátku velké písmenojméno, příjmení apod.Jana, Zbyněk, Řehoř, apod.
^[A-ZÁÉĚÍÓÚŮŽŠČŘĎŤŇ
a-záéěíóúůžščřďťň \.]+$
řetězec obsahující malá i velká písmena včetně diakritiky, případně mezeru či tečkuměstoHradec Králové, Praha, Lysá n. L
^[a-záéěíóúůžščřďťň \.]+$
s parametrem i
řetězec obsahující malá i velká písmena včetně diakritiky, případně mezeru či tečku
parametr i - ignore case
městoHradec Králové, Praha, Lysá n. L.

Vytvoření regulárního výrazu:
var reg = new RegExp("výraz", "parametry");
nebo:
var reg = /výraz/parametry;

Zadání parametrů je nepovinné. Parametr i znamená ignore case (při vyhodnocování se nerozlišují malá a velká písmena), parametr g znamená global.

Metody pracující s regulárními výrazy:

String metody pracující s regulárními výrazy: