Slabikář JavaScriptu – další objekty

6. května 2002

Tento díl slabikáře bude pojednávat o dalších objektech prohlížeče, které jsou v hierarchii přímo pod objektem Window. Popsány zde budou objekty Location, History, Navigator a Screen. Kromě uvedených objektů jsou na stejné úrovni ještě objekt Event a dále objekty Document a Layer, jejichž popis si však vyžádá několik samostatných pokračování.

Objekt Location

Tento objekt v sobě uchovává informace o URL aktuálně zobrazovaného dokumentu. Jeho metody mohou zajistit automatickou navigaci na jiná URL. Pro popis vlastností předpokládejme, že v browseru je zobrazen dokument, jemuž odpovídá URL http://www.domena.com:80/examples/ex1/alfa.html#info. Pak budou mít jednotlivé vlastnosti následující hodnoty:

  • hash – uchovává informaci o části URL za znakem #. V našem případě var zarazka=self.location.hash přiřadí do proměnné zarazka hodnotu „info“. Příkazem self.location.hash=“abc“ přinutíte dokument „narolovat“ na místo v dokumentu pojmenované „abc“, pokud takové v dokumentu existuje.
  • host – uchovává část adresy URL složenou z doménového názvu (případně IP adresy nebo síťového názvu serveru) a softwarového portu, pokud je explicitně uveden (Pokud je v browseru zobrazen HTML dokument přímo z file systému počítače, je hodnota této vlastnosti prázdná.); www.domena.com:80
  • hostname – vlastnost host ochuzená o softwarový port; www.domena.com
  • pathname – cesta k souboru; examples/ex1/alfa.html
  • port – softwarový port v rámci URL; 80
  • protokol – přenosový protokol, kterým je obsah browseru zobrazen; http:
  • href – souhrn všech výše uvedených vlastností; http://www.domena.com:80/examples/ex1/alfa.html#info

Metody objektu Location se vztahují k navigaci zobrazovaného obsahu prohlížeče. Metoda reload() má stejnou funkci jako stisknutí tlačítka Refresh v prohlížeči. U Netscapu chování této metody závisí na nastavení prohlížeče v Network Preference settings. Pokud chcete mít jistotu, že stránka bude znovu natažena ze serveru a nikoli z cache, zadejte reload(true).

Metoda replace(‚URL‚) funguje stejně jako reload(), ovšem s tím rozdílem, že aktuální dokument se nahradí tím, jehož URL je uvedeno jako argument metody. Tato metoda funguje stejně jako změna hodnoty vlastnosti href, použití metody replace(‚URL‚) však nepřidává novou položku do historie navštívených stránek (objekt History), pouze stávající záznam přepisuje jiným. Naproti tomu použití vlastnosti href pro přesměrování na jinou stránku se do objektu History přidá nový záznam.

Objekt History v sobě uchovává záznamy o všech navštívených stránkách, mezi nimiž může uživatel listovat pomocí tlačítek Zpět a Vpřed. Jedinou vlastností objektu je length, která v sobě udržuje objektu přístupný počet záznamů historie. Tři metody slouží k navigaci na stránky reprezentované těmito záznamy:

  • history.back() má stejný efekt jako kliknutí na tlačítko Zpět v prohlížeči
  • history.forward() se chová stejně jako tlačítko Vpřed
  • history.go(N) umožňuje pohyb v historii o N kroků (history.go(2) zobrazí dokument, který je v historii o dva vpřed od aktuálního dokumentu; history.go(-3) zobrazí dokument, který je v historii o tři kroky zpět)

Objekt Navigator reprezentuje vždy informace o používaném prohlížeči. Jeho vlastnosti slouží především k tomu, aby programátor byl schopen rozeznat prohlížeč a jeho verzi. Na základě této znalosti pak může větvit další běh programu, protože kód odladěný v jednom prohlížeči nemusí být funkční v jiném. To je způsobeno především odlišnostmi objektového modelu v různých prohlížečích i v rámci verzí jediného prohížeče.

Pokud umístíte následující ukázkový kód někam na začátek HTML dokumentu (třeba do elementu HEAD), provede se při načítání stránky kontrola browseru. Pokud použijete jiný prohlížeč než Internet Explorer ve verzi 5.0 nebo pozdější, budete přesměrováni na Interval.cz:

if (navigator.appName == „Microsoft Internet Explorer“) {
  var strVerze=navigator.appVersion;
  var index = strVerze.indexOf(„MSIE“);
  MajorVersion = strVerze.substring(index+5,index+6);
  if (MajorVersion<5) {
    alert (“ Používáte starou verzi prohlížeče Internet Explorer. \n Nainstalujte nejprve verzi 5.0 nebo pozdější.“)
    self.location.replace(‚http://www.interval.cz‘);
  }
}
else
{
  alert (“ Používáte jiný prohlížeč než Microsoft Internet Explorer. „)
  self.location.replace(‚http://www.interval.cz‘);
}

Objekt Navigator má ještě další užitečné metody a vlastnosti. Například vlastnost cookieEnabled vrací hodnotu true, pokud je browser nastaven tak, aby přijímal cookies. Pokud vaše programy využívají cookies, může se tato vlastnost stát neocenitelným pomocníkem. Nebo pokud hodláte na svých stránkách používat Java Applety, bude pro vás jistě užitečná metoda javaEnabled(). Ta vrací opět true nebo false v závislosti na tom, zda browser povoluje či nepovoluje používání Javy.

Objekt Screen je specifickou záležitostí Internet Exploreru, udává velikost pracovní plochy v pixelech a barevné rozlišení. Vlastnost heigh respektive availHeight obsahuje informaci o výšce obrazovky, respektive dostupné výšce obrazovky v pixelech. Pokud máte ve Windows lištu Start na spodním okraji obrazovky, považuje se prostor zabraný lištou za nedostupný pro maximalizovaný browser, a proto je hodnota vlastnosti availHeight menší než height. Pokud umístíte lištu na levou nebo pravou stranu, budou hodnoty obou vlastností stejné. Stejný typ informace o šířce obrazovky je uložen ve vlastnostech width a availWidth. Tyto vlastnosti jsou užitečné, pokud potřebujete otevřít nové okno (nebo změnit velikost a umístění stávajícího) tak, aby mělo například výšku a šířku třetiny obrazovky a bylo umístěno na její střed. Uvedený příklad řeší právě takovou situaci:

<html>
<head>
<script language=“JavaScript“>
function Okno() {
  sirka=parseInt(screen.availWidth/3,10);
  vyska=parseInt(screen.availHeight/3,10);
  var str=“height=“ + vyska + „,width=“ + sirka + „,left=“ + sirka + „,top=“ + vyska
  open(„about:blank“, „“, str)
}
</script>
</head>
<body>
<input type=“button“ value=“Otevřít“ onClick=“Okno()“>
</body>
</html>

Další zajímavou vlastností může být colorDepth, jež udává barevnou hloubku, kterou má uživatel nastavenu na počítači. Vlastnost vrací barevnou hloubku v bitech, například pro 256 barev vrací hodnotu 8 a podobně.

Štítky: Články

Mohlo by vás také zajímat

Nejnovější

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *