Vybrané metody JavaScriptu
Obsah:
- Co to jsou objekty
- Vlastnosti a metody objektů
- Window
- Location
- Document
- History
- Date - metody pro práci s datumem
- String - metody pro práci s textovými řetězci
- Math - matematické metody
Co to jsou objekty
JavaScript je objektově orientovaným programovacím jazykem (OOP), což znamená, že využívá objektového modelu (DOM). Základním objektem je window (okno). Jeho podobjekty jsou např. document (html stránka), navigator (internetový prohlížeč), history (historie navštívených stránek) a další. Podobjekty objektu document jsou kolekce jednotlivých prvků html stránky, tj. kolekce obrázků (images), odkazů (links), formulářů (forms) a kotev - pojmenovaných míst dokumentu (anchors). Kolekce všech objektů dokumentu (all) je zavedena jen v některých prohlížečích. Podobjekty těchto kolekcí jsou jednotlivé prvky html stránky.
Např. obrázek, jehož name nebo id je pyramida (<img name="pyramida" src="foto01.jpg" width="100" height="75" alt="">), je objekt:
window.document.images.pyramida
Objekt window, jakožto hlavní objekt, můžeme v zápise vynechat:
document.images.pyramida
Obrázek je součástí kolekce images ale i kolekce all:
document.all.pyramida
Tlačítko, jehož name je tlacitko a které je ve formuláři formular, je objekt:
document.forms.formular.tlacitko
Na kolekce objektů se můžeme dívat také jako na pole a tlačítko zapsat jako:
document.forms["formular"].tlacitko
nebo s použitím indexu (index 0 - formular je první formulář dokumentu):
document.forms[0].tlacitko
Na objekty dokumentu (včetně těch, které nejsou součástí výše zmíněných kolekcí, např. h1, div apod.) se můžeme také odkazovat pomocí metod (viz dále):
document.getElementsByName("name_prvku"), která vrací kolekci objektů dokumentu, jež mají zadané name, nebo document.getElementById("id_prvku"), která vrací objekt s daným id.
document.getElementsByName("tlacitko")[0]
document.getElementById("tlac1")
Vlastnosti a metody objektů
Objekty mají určité vlastnosti (např. name, src, value) a metody, pomocí nichž lze s objekty pracovat.
Příklady vlastností:
document.images.pyramida.src //soubor - zdroj obrázku
document.images.pyramida.width //šířka obrázku
document.images.pyramida.style.borderWidth //styl - šířka rámečku obrázku
document.images.pyramida.className //třída stylu obrázku
document.forms["formular"].jmeno.value //obsah textového pole jmeno
document.forms["formular"].jmeno.maxSize //maximální délka textového pole
Vlastnosi objektů lze měnit, např.:
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")
Metody objektu document jsou např.:
document.write("zpráva")
document.writeln("zpráva")
document.getElementsByName("name")
document.getElementById("id")
Další vybrané metody a vlastnosti
Window
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 300px
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
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
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á