Autor Zpráva
Vojtech Mikyska
Profil
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
Vojtech Mikyska:
<img src="obrazok.gif" onclick="window.open(this.src); return false">

to by nešlo?
margin
Profil *
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
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
_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
Ok, díky všem za rady už se mi to povedlo. Díky
Joker
Profil
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
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 *
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">
Keď si všimnete, ostatné obrázky nemajú 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 *
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
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 *
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 *
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>
Doporučuji upravit podle Otevření nového okna » Blokování nových oken a případně přidat odkazu target=_blank.
peteo
Profil
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
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.

Vaše odpověď


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: