Otev°enφ novΘho okna

P°φkaz window.open()

P°φklad - Syntaxe - Vyu╛itφ - Blokovßnφ nov²ch oken - NovΘ okno v HTML

P°φklad:

window.open("http://www.jakpsatweb.cz", "_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).

Syntaxe: 

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.

Pokud nejsou uvedeny

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∞).

P°φklad: 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).

Co nejde

Titulkov² prou╛ek, v∞t╣inou modr² prou╛ek naho°e, se zobrazφ v╛dy a nelze jej nijak vypnout.

Nelze ud∞lat novΘ okno maximalizovanΘ (pouze co nejv∞t╣φ).

Skriptem nejde zm∞nit velikosti okna, pouze jde otev°φt novΘ.

Nelze automaticky zav°φt to okno, kterΘ okno otev°elo.

NejΦast∞j╣φ chyba

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°. symbolicky 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"). Pokud se uvede jenom jeden parametr, je to adresa strßnky. Druh² je jmΘno rßmu. T°etφ jsou vlastnosti okna. Kdy╛ je pomφchßte, nebude to fungovat.

Vyu╛itφ

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.

P°φkaz otev°enφ novΘho okna lze 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(...)">

Reklamnφ pop-up

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()

Blokovßnφ nov²ch oken

Existuje hodn∞ blokovaΦ∙ nov²ch oken -- progrßmk∙, co se dajφ doinstalovat do prohlφ╛eΦe. Pokud mßm takov² progrßmek nainstalovan², odchytßvß to ka╛dΘ samovoln∞ otevφranΘ novΘ okno. Progrßmky se li╣φ tφm, ╛e na zablokovanΘ okno bu∩to upozornφ, nebo neupozornφ v∙bec. M∙╛e se tak stßt, ╛e novΘ okno, kterΘ budete na sv²ch strßnkßch plßnovat, se v∙bec neotev°e. Neznßm ╛ßdn² v²zkum roz╣φ°enφ blokovaΦ∙ nov²ch oken, ale troufßm si tvrdit, ╛e jejich v²skyt Φasem jenom poroste. A tak tu mßme dal╣φ argument proti pou╛φvßnφ nov²ch oken javascriptem. Nejroz╣φ°en∞j╣φm blokovaΦem je li╣tiΦka Google toolbar (urΦenß primßrn∞ pro ·Φely vyhledßvßnφ).

NovΘ okno normßln∞ v HTML

Pro dopln∞nφ p°φklad na otev°enφ novΘho okna po kliknutφ na odkaz:

<a href="adresa.html" target="_blank">odkaz</a>

Vzhled ani velikost takovΘho okna nejde nijak ovlivnit. Vizte target v HTML.

o tvorb∞, ·dr╛b∞ a zlep╣ovßnφ internetov²ch strßnek

Nßvody HTML CSS JavaScript
Pφ╣e Yuh∙, dusan@pc-slany.cz

Hledßnφ:

Javascript na www.jakpsatweb.cz

Pφ╣e Yuh∙: http://dusan.pc-slany.cz, mail: dusan@pc-slany.cz

Poslednφ aktualizace 10.12.2003