Objekty DOM


Document object model – DOM = jednotný zápis objektů, jak se budou řadit a jmenovat – nezávislé na volbě prohlížeče

Základní objekty

Window

  • nejvyšší objekt v hierarchii objektů
  • všechny ostatní objekty (kromě Math a Date apod.) jsou podobjekty window
  • nepovinný název, nemusí se psát:
window.location //je to samé jako:
location
//adresa načteného dokumentu

alert(location)
//vypíše adresu do alertu

location.href="http://www.physiome.cz/wiki/"
//vlastnost - načte danou stránku - měl by tento krok zařadit do historie

location.replace("http://www.physiome.cz/wiki/")
//metoda - také načte danou stránku - vymění ji za tu stávající - neměl by tento krok zařadit do historie

location.reload(true);
//metoda - automaticky aktualizuje danou stránku

Aktuální čas a datum aktualizované pomocí location.reload:

<body>
<script>
//alert(location)
//location.reload(true);

var datum = new Date();
var rok = datum.getFullYear();
var mesic = datum.getMonth();
var den = datum.getDate();
var denVTydnu = datum.getDay();
var hodina = datum.getHours();
var minuta = datum.getMinutes();
var sekunda = datum.getSeconds();

//alert(denVTydnu);

var jmenoDne;

switch(denVTydnu) {
 case 0:alert("je nedele"); break;
 case 4: jmenoDne = "ctvrtek" ; break;
 }
 
document.write("Dnes je "+jmenoDne+" "+den+". "+mesic+". "+rok+"<br>");
document.write("<br>Právě je <b>"+hodina+":"+minuta+":"+sekunda+".</b>");
</script>
<br>
<a href="javascript:location.reload()"> Obnov. </a>

</body>

Location se skládá z:

protocol://hostname:port/pathname/?search#hash

  • protocol – https nebo http
  • hostname – adresa, např „www.google.cz
  • port – většinou není žádný, některé služby ho vypisují např 80:80
  • path name – za lomítkem, např. /wiki/
  • search – vyhledávání – v search je uložená hodnota proměnné např. ?jmeno=Martin
  • **** – tagy – hodnoty, které jsou nastavené

Window history

  • jednoduchý objekt, má pár metod
  • na složitější práci s historii je potřeba využít cookies
history.back() - vrátí o stránku zpět
history.back(2) - o dvě stránky zpět
history.forward() - posune o stránku vpřed (pokud se uživatel posune zpět, může se vrátit)
history.go() 
history.go(-1) - vrátí stránku o jednu zpět

Window navigator

  • zjišťuje informace o typu a verzi prohlížeče
document.write("<br>"+navigator.appName); //jméno prohlížeče
document.write("<br>"+navigator.appVersion); //verze prohlížeče
document.write("<br>"+navigator.plugins.length); //počet pluginů
document.write("<br>"+navigator.platform); //operační systém
document.write("<br>"+navigator.systemLanguage); //jazyk operačního systému

Dialogová okna

Upozornění nebo chybová hláška, která se otevře v novém oznamovacím okně:

Dialogové okno s oznámením

<script>
    alert("Baf!")
</script>

Dialogové okno vyžadující vstup uživatele

<script>
    var jmeno = prompt("zadej své jméno")
    document.write("<br>Tvé jméno je " + jmeno);
</script>

Dialogové okno ano/ne

<script>
    var pauza = confirm("Chcete pauzu?")
    if (pauza) document.write("<br>Dáme pauzu")
</script>

Window open (vyskakovací okno)

  • otevře nové okno

window.open(„adresa stránky“, „jméno stránky“, „další parametry“)

další parametry:

  • sirka
  • vyska
  • vzdálenost od okrajů (right, left, top…)
  • fullscreen
//vyskakovací okno při spuštění prohlížeče 
<script>
window.open("http://www.seznam.cz", "nove", "fullscreen");
 
</script>
//vyskakovací okno po kliknutí na odkaz
<a href="http://www.seznam.cz" onclick="window.open(this.href, 'nove', 'hight=600')">zde</a>
<a onclick="promenna.close()">zavři</a>
</body>
Automatické zavření otevřeného okna:
<body>
<script>
 	var promenna = window.open("http://www.seznam.cz", "nove");
 
</script>
<a href="http://www.seznam.cz" onclick="window.open(this.href, 'nove', 'hight=600')">zde</a>
<a onclick="promenna.close()">zavři</a>
</body>

Automatické zavření okna:

– zavře aktuálně otevřené okno

window.close

Zmenšení okna:

funguje jen na aktuální okno

window.resizeTo(500,500);

Zmenšení okna:

funguje jen na aktuální okno

<p onclick="window.print()">tiskni</p>

Časování

  • spuštění akce po nějakém čase * některé prohlížeče upozorní na své zavření (explorer), jiné ne a okno zavřou automaticky (chrome)
var casovat = setTimeout ("co se má stát/jméno funkce", čas v milisekundách)

příklad – vyskakovací okno po 5s:

function naCas(){
	window.open("http://www.seznam.cz", "nove", "hight=200, width=300, left=50");
	}
var casovat = setTimeout ("naCas()", 5000)

Adresování objektů

Obrázky * pomocí indexu, jejich index určuje podle pořadí ve zdrojovém kódu

Výměna dvou obrázků:

<script>
function naStisk(){
    var pom = document.images[0].src;
	
	document.images[0].src = document.images[1].src;
	document.images[1].src = pom;
}

</script>
</head>

<body>

<img src="http://upload.wikimedia.org/wikipedia/commons/c/ca/Niobe050905-Siamese_Cat.jpeg" alt="1" width="200px">
<img src="http://upload.wikimedia.org/wikipedia/commons/2/22/Turkish_Van_Cat.jpg" alt="2" width="200px">
<input type="button" value="Stiskni" onclick="naStisk()">

</body>

Objektům lze nastavit id – s textovým řetězcem

např:

<img src="http://upload.wikimedia.org/wikipedia/commons/c/ca/Niobe050905-Siamese_Cat.jpeg" id="prvni">

k takovému objektu se přistoupí:

document.images["prvni¨"].src = ...

Takto lze upravovat i styly:

<script>
    function vypniStyly(){
	document.styleSheets[0].disabled = true;
    }
</script>
</head>

<body>
    <img src="http://upload.wikimedia.org/wikipedia/commons/c/ca/Niobe050905-Siamese_Cat.jpeg" id="prvni" alt="1" width="200px">
    <img src="http://upload.wikimedia.org/wikipedia/commons/2/22/Turkish_Van_Cat.jpg" alt="2"  width="200px">
<input type="button" value="styl" onclick="vypniStyly()">
</body>

Vypínání a zapínání stylu:

function vypniStyly(){
	document.styleSheets[0].disabled = !;          document.styleSheets[0].disabled;
}