Příkaz window.open()
window.open("http://dusan.pc-slany.cz/internet", "_blank", "width=400,height=500")
otevře zadanou stránku v novém okně, které nebude mít žádné lišty nebo panely, přičemž bude mít velikost 400 x 500 a nepůjde roztáhnout.
Jiný příklad:
window.open("index.html", "nove",
"width=800,height=600,menubar=yes,resizable=yes,left=0,top=0")
otevře velké nové okno (800x600), které bude přilepené do levého horního růžku obrazovky (left=0, top=0). V okně bude načtena hlavní stránka (index) ze stejného adresáře. Okno se jmenuje "nove", což se dá použít pro případné odkazy (target=nove).
window.open("URL", "jmeno_ramu", "volba=hodnota,volba2=hodnota2")
Při zápisu pozor na čárky a uvozovky -- uvozovky jsou tam potřeba (mohou se nahradit apostrofy). URL se zadává normálně http://... nebo relativní. Jméno rámu se dá později použít pro zacílení případných odkazů pomocí target.
Volby jsou nepovinné. Oddělují se čárkou bez mezery (!) a týkají se většinou zobrazení různých částí okna:
Volba | Význam | Hodnoty |
---|---|---|
toolbar | panel nástrojů (zpět, vpřed...) | yes | no |
location | vstupní pole adresy | yes | no |
directories | divný panel odkazů | yes | no |
status | stavový řádek (dole) | yes | no |
menubar | nabídka (soubor, úpravy...) | yes | no |
scrollbars | rolovací lišty (umožňující posun) | yes | no |
resizable | možnost změny velikosti okna | yes | no |
width | šířka okna v pixelech | pixely |
height | délka okna v pixelech | pixely |
left | vzdálenost levého okraje od okraje obrazovky | pixely |
top | vzdálenost horního okraje od vršku obrazovky | pixely |
fullscreen | okno bude přes celou obrazovku (fakt přes celou) | bez hodnoty |
Namísto yes | no lze zadávat hodnoty 1 | 0. Pokud se uvede volba bez hodnoty, chápe se jako yes, pokud se volba neobjeví, chápe se jako no.
Z toho vyplývají i hodnoty voleb, pokud nejsou uvedeny. Všechny volby jsou rovny yes, pokud se volby vůbec nezadávají (tzn příkaz nemá třetí parametr). Pokud se ale volby zadávají (třeba i řetězcem ""), všechny neuvedené jsou rovny no.
Příklad: window.open("http://www.redbox.cz", "redbox_ram", "location=yes,status=no,width=600,height=500,resizable")
otevře nové okno 600 x 500 s Redboxem, bude vidět adresa, nebude zobrazena stavová lišta a okno bude rozšiřitelné. Po obsahu ale nepůjde rolovat, protože není uvedena volba scrollbars.
Neuvedou-li se rozměry okna, velikost je stejná jako u nových oken (otevřených příkazem Otevřít v novém okně).
window.open("http://seznam.cz") zobrazí Seznam v novém okně, které bude úplně normálním oknem prohlížeče (protože volby nejsou vůbec vypisované, a tak jsou chápány jako yes).
Pokud se použije zápis nove_okno = window.open(...)
, dá se potom s oknem manipulovat s použitím
proměnné nove_okno (to jen pro vyspělé skriptovače).
Spočítejte si dobře parametry příkazu window.open. Jsou tři. Když tam napíšete 4 nebo víc, nebude to
fungovat. Např. window.open("adresa","ram","parametry","jiné
parametry")
, tak je to špatně, protože správně to má být window.open("adresa","ram","parametry
, jiné parametry")
Osobně mám příkaz window.open nerad, ale chápu, že jej někteří autoři potřebují. Nejčastěji se otevření nového okna váže k nějakému odkazu <a> a události kliknutí onclick.
<a href="stranka.html" onclick="window.open('stranka.html'); return
false">
Odkaz normálně míří na stránku stranka.html, ale při kliknutí se stranka.html otevře v novém malém okně.
Protože by se normálně stránka načetla i do aktuálního okna (což dejme tomu nechceme, proč ji totiž zobrazovat
dvakrát?), je třeba k onclick
doplnit o return false
, což způsobí, že se vlastní odkaz
nespustí (jako bychom nakonec řekli: kliknuto = nebylo).
Dost často se otevírání nového okna používá na nějakou stránku s doplňujícími událostmi nebo pro zobrazení reklamy. Tam se samozřejmě nemusí dávat return false.
Příkaz otevření nového okna můžeme navázat na libovolnou událost libovolného prvku, v praxi je ale třeba používat události jenom u odkazů (odesílacích tlačítek a několika málo dalších elementů), protože starší prohlížeče (třeba Netscape 4) u jiných elementů neumí události spouštět.
Proto se častěji otevírání nového okna zapisuje jako skript přímo do proudu dokumentu
<script>
>
window.open(...);
</script
nebo se váže na událost onload prvku body (načtení dokumentu):
<body onload="window.open(...)">
Otevření nového okna s reklamou se říká pop-up. Je to jeden z nejnenáviděnějších reklamních formátů. Dejme tomu, že do budu načítat stránku reklama.html ze serveru reklama.net.
<script>
>
window.open("http://www.reklama.net/reklama.html", "_blank", "width=250,height=250");
</script
To je jaksi celé. Při natahování stránky vyskočí pop-up okénko samo o sobě (protože je voláno přímo ze <script>), která má standardní rozměry pop-up reklamy 250x250. Mimochodem, jedná se o nejméně účinný typ reklamy, protože takové okénko hned všichni zavírají.
Příklad s metodou window.open vizte např. u metod focus() a blur()
Předchozí: Události JavaScriptu | Obsah stránek o JavaScriptu na serveru Jak psát web | Další: zatím konec |
Vizte též: Metody objektu window |
![]() |
JavaScript na
serveru Jak psát web http://dusan.pc-slany.cz/internet/html/
Píše Yuhů: autorova stránka, mail: dusan@pc-slany.cz