Autor | Zpráva | ||
---|---|---|---|
Vojtech Mikyska Profil |
#1 · Zasláno: 22. 1. 2013, 23:46:54
Zdravím všechny. Mám problém s target="_blank". Z jeho použití je jasné, že mi jde o to, aby se obrázek otevřel v novém okně. Jenže já bych to potřeboval trošku jinak, než jak to funguje. Potřeboval bych, aby se ten obrázek otevřel opravdu v novém okně a to okno aby nebylo na fullscreen. Jak Firefox, tak Chrom to neotvírají v novém okně, ale přidají záložku, což nechci, já chci nové okno. Kupodivu tak jak to chci to dělá jen mnou neoblíbený Explorer, který obrázek hezky otevře v malém NOVÉM okně. Díky za připomínky, jak tohoto docílit i v ostatních prohlížečích...
|
||
_es Profil |
Vojtech Mikyska:
Čo spraví prehliadač návštevníka pri kliknutí na odkaz s target="_blank" neovplyvníš. V niektorých prehliadačoch sa dá aj nastaviť, či sa má taký odkaz otvoriť do nového okna alebo do novej „záložky“. Ak chceš otvoriť nové okno, môžeš to spraviť v JS príkazom window.open so zadanými rozmermi okna.
|
||
peteo Profil |
#3 · Zasláno: 23. 1. 2013, 02:10:35
Vojtech Mikyska:
<img src="obrazok.gif" onclick="window.open(this.src); return false"> to by nešlo? |
||
margin Profil * |
#4 · Zasláno: 23. 1. 2013, 03:47:17
Fungovat to bude, ale má to spoustu nevýhod.
Jaký význam má return false ?
Proč otvíráš this.src ? Chápal bych <img src="maly.gif" onclick="window.open('velky.gif')"> , ale přesto bych dal onclick klasicky na odkaz.
Uživatelé jsou zmlsaní a uvítali by lightbox nebo nějakou jeho obdobu. |
||
_es Profil |
#5 · Zasláno: 23. 1. 2013, 08:13:48
peteo:
„to by nešlo?“ Nešlo, treba zadať rozmery okna, vtedy sa otvorí nové okno. Pri hentom kóde je rovnako neisté, či sa otvorí nová „záložka“ alebo okno. Vojtech Mikyska: Riešenie, čo chceš, má ešte nevýhodu, že ak návštevní klikne niekde mimo nového okna, tak sa nové okno presunie „dozadu“ za pôvodné okno prehliadača. |
||
peteo Profil |
#6 · Zasláno: 23. 1. 2013, 13:03:50
_es:
Otváranie obrázkov v novom okne s rozmermi obrázka mi funguje: list($width0, $height0, $type0, $attr0) = getimagesize($pict_fin[0]); $obr=$pict_fin[0].'" align="up" width=99% alt="'.$odkaz[0].'" title="'.$odkaz[0].'" onclick="window.open(this.src,'."'','width=".$width0.",height=".$height0.",top=0,left=0'); return false"; kde $pict_fin[0] je adresa samotného obrázku. Testované na mozille, IE, opere, chrome a safari a všade beží. skutočne, príkaz, ktorý som napísal, som priveľmi zjednodušil. |
||
Vojtech Mikyska Profil |
#7 · Zasláno: 23. 1. 2013, 16:20:13
Ok, díky všem za rady už se mi to povedlo. Díky
|
||
Joker Profil |
#8 · Zasláno: 23. 1. 2013, 16:35:50
Vojtech Mikyska:
„už se mi to povedlo“ Jak? Mám za to, že to prostě nejde. Resp. minimálně v Opeře když nemám zaškrtnuté „Otevírat nová okna místo listů“ jsem neviděl, že by kdy něco otevřela do nového okna (s výjimkou nápovědy teda). peteo, margin: Ani window.open se mi neotevře do nového okna. Nahrazení odkazu skriptem otevírajícím nové okno má ještě tu nevýhodu, že pokud má uživatel nastavené blokování nevyžádaných vyskakovacích oken, ten skript do toho nejspíš spadne (zatímco odkaz s target=_blank ne). |
||
peteo Profil |
#9 · Zasláno: 23. 1. 2013, 16:57:36
Joker:
Vo všetkých spomínaných prehliadačoch mám blokovanie vyskakovacích okien zapnuté a funguje mi to. skúste napr. tohto kozmonauta a kliknite na jeho fotografiu. Strašne ma naštvete (s úsmevom vyslovené), keď mi poviete, že to nefunguje. Testoval som to asi na 10 počítačoch (cudzích) s rôznymi prehliadačmi a všade to fungovalo (s vyššie uvedený kódom)[#6] . |
||
margin Profil * |
#10 · Zasláno: 23. 1. 2013, 18:02:59
Joker:
„Resp. minimálně v Opeře když nemám zaškrtnuté ‚Otevírat nová okna místo listů‘ jsem neviděl, že by kdy něco otevřela do nového okna“ Ne, tahle volba dělá něco jiného, otevře nové okno Opery místo nového listu, ale pozor, nad touto volbou má přednost nastavení pro prostřední tlačítko myši, takže funguje jen tam, jde má odkaz nebo windows open target do nového okna. Možná jsi měl na mysli volbu Maximalizovat, i vyskakovací okna, pak se i window.open se i zadanými rozměry otevře maximalizovaný. peteo: „Vo všetkých spomínaných prehliadačoch mám blokovanie vyskakovacích okien zapnuté“ Ne, máš zapnuté blokování nevyžádaných vyskakovacích oken. „Testoval som to asi na 10 počítačoch (cudzích) s rôznymi prehliadačmi a všade to fungovalo (s vyššie uvedený kódom)[#6]“ Na stránce máš kód [#3]. Pořád nechápu, jaký význam má otevírat this.src a proč je tam return false .
„Strašne ma naštvete (s úsmevom vyslovené), keď mi poviete, že to nefunguje.“ Můžeme to udělat stoprocentně přístupné, ale My jsme řekli ne! |
||
peteo Profil |
margin:
jasne že miesto toho this.src tam môže byť akákoľvek adresa (napr. na väčší obrázok alebo úplne niekde inde), return false je tam preto, aby prehliadač pochopil, že to nechcem do aktuálneho okna - preto to otvára do nového okna a nie listu.
Na stránce máš kód [#3]. Zle ste pozerali. Toto je priamo z prehliadača: <img src="images/hermaszewski-miroslaw.gif" align="up" width=99% alt="Hermaszewski, Miroslaw" title="Hermaszewski, Miroslaw" onclick="window.open(this.src,'','width=142,height=150,top=0,left=0'); return false"> return false a preto sa otvárajú do aktuálneho okna i listu.
Můžeme to udělat stoprocentně přístupné, ale My jsme řekli ne! to mi chcete povedať, že to nejde? Ne, máš zapnuté blokování nevyžádaných vyskakovacích oken. aké sú vyžiadané a nevyžiadané vyskakovacie okná? |
||
margin Profil * |
#12 · Zasláno: 23. 1. 2013, 19:38:07
peteo:
„return false je tam preto, aby prehliadač pochopil, že to nechcem do aktuálneho okna“ Prohlížeče tvou domněnku nechtějí akceprovat. Živá ukázka: http://jsfiddle.net/87N5d/ http://fiddle.jshell.net/87N5d/show/ „aké sú vyžiadané a nevyžiadané vyskakovacie okná?“ Vyžádadé okno, uživatel klikne: <img src="Odkaz" onclick="window.open this.src,'','width=140,height=140,top=20,left=10')"> Neyžádadé okno, všechno ostatní, třebas: <script> window.open("http://www.seznam.cz", "jmeno_okna", "width=400, height=400"); </script> |
||
peteo Profil |
#13 · Zasláno: 23. 1. 2013, 19:47:57
margin:
neúplne som to interpretoval, (mea culpa), ale principiálne (som si myslel, že) to je tak: pozri jakpsatweb.cz, z toho som pred troma rokmi vychádzal, keď som ten kód páchal. A zdá sa mi logické. |
||
margin Profil * |
#14 · Zasláno: 23. 1. 2013, 19:59:16
Logické to je, pokud bys tam měl odkaz, viz tebou odkázaná stránka Otevření nového okna.
|
||
peteo Profil |
margin:
však tam je: ...onclick="window.open(this.src,... to this.src tam je preto, lebo neotváram stránku (odkaz definovaný <a href=...> ), ale obrázok ...src="images/hermaszewski-miroslaw.gif"... .
to onclick="window.open(... nie je v tagu <a href´...> ale v tagu <img ...> , ako to je konieckoncov i v ukážkach [#12].
keby to bol odkaz na otvorenie nového okna so stránkou, tak bude to onclick="window.open(... v tagu <a href´...> a bude tam samozrejme this.href .
ale pokiaľ viem, od začiatku sa bavíme o otvorení obrázku do nového okna. |
||
margin Profil * |
#16 · Zasláno: 23. 1. 2013, 22:04:21
peteo:
Pravděpodobně teď máme na mysli něco jiného. Pokud tam nemáš odkaz, return false postrádá smysl a proto mít tam return false nemá logiku.
„to this.src tam je preto, lebo neotváram stránku“ Otevíráš stránku skrze window.open , obsahem stránky je obrázek.
S odkazem, který také otevře stránku, na které bude obrázek, to vypadá nějak takto: <a href="http://diskuse.jakpsatweb.cz/img/logo-min.png" onclick="window.open(this.href,'','width=140,height=140,top=20,left=10'); return false"> <img src="http://diskuse.jakpsatweb.cz/img/logo-min.png"> </a> |
||
peteo Profil |
#17 · Zasláno: 23. 1. 2013, 22:31:05
margin:
rozumiem. Konečne sme sa nejako dohodli. :) vôbec ma ale nenapadlo, že medzi týmito dvoma konštrukciami je nejaký rozdiel. Teda v príklade[#16] je istota, že obrázok sa otvorí v novom okne v definovanej veľkosti (bez ohľadu na nastavenia prehliadača užívateľa), a v príklade [#11] môže a nemusí (podľa nastavenia prehliadača užívateľa)? |
||
_es Profil |
#18 · Zasláno: 24. 1. 2013, 10:25:33
peteo:
„Teda v príklade[#16] je istota, že obrázok sa otvorí v novom okne v definovanej veľkosti (bez ohľadu na nastavenia prehliadača užívateľa), a v príklade [#11] môže a nemusí (podľa nastavenia prehliadača užívateľa)?“ Nie, otvorí sa rovnako. Istotu nemáš, margin v [#10] uvádza jedno nastavenie v Opere. Margin sa ti snažil vysvetliť, že return false ruší obvyklú akciu prehliadača, teda pri odkaze zmysel má a pri obrázku zmysel nemá - kliknutie na obrázok v prehliadači nič nerobí (bez JS). Okrem toho sa odkazy v prehliadači nejako správajú a nejako vyzerajú a pri obyčajnom obrázku nemusí návštevník prísť na to, že kliknutie naň niečo robí. Nechápem ešte, aký má zmysel najprv obrázok zobraziť na stránke a potom ten istý obrázok zobraziť vo vyskakovacom okne.
|
||
Časová prodleva: 12 let
|
0