P°φkaz window.open()
P°φklad - Syntaxe - Vyu╛itφ - Blokovßnφ nov²ch oken - NovΘ okno v HTML
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).
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∞).
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).
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.
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.
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(...)">
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()
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φ).
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.
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,
NovΘ okno otev°enΘ odkazem v HTML P°φklady: NovΘ okno p°es celou obrazovku, P°φklad otev°enφ co nejv∞t╣φho novΘho okna Odkaz mimo: Tabulka parametr∙ ovliv≥ujφcφch vzhled okna s dal╣φmi hodnotami, Roman Pichlφk, netestovßno |
o tvorb∞, ·dr╛b∞ a zlep╣ovßnφ internetov²ch strßnek