Portál AbcLinuxu, 3. května 2025 22:44

Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře.

Vložit další komentář
27.4.2009 11:42 mirrec | blog: mirrec
Rozbalit Rozbalit vše Re: JQuery - otevirani rel=nofollow v novem okne
Odpovědět | Sbalit | Link | Blokovat | Admin

a aku to ma vyhodu to takto otvarat ?

sak ked pouzijem parameter target="_blank" v odkaze tak dostanem tu istu funkcionalitu.

nechapem preto preco do toho tahat JS a este k tomu externu kniznicu

27.4.2009 12:31 Non_E | skóre: 24 | blog: hic_sunt_leones | Pardubice
Rozbalit Rozbalit vše Re: JQuery - otevirani rel=nofollow v novem okne
X XHTML 1.0 Strict target="_blank" nenajdete.
Only Sith deals in absolutes.
27.4.2009 12:57 Filip Jirsák | skóre: 68 | blog: Fa & Bi
Rozbalit Rozbalit vše Re: JQuery - otevirani rel=nofollow v novem okne
Což určitě mělo nějaký důvod, a obcházet to tímhle způsobem je zvláštní. Pokud někdo z nějakého důvodu chce web, který otvírá odkazy v novém okně, měl by také být schopen obhájit si chybová hlášení validátoru. Tvářit se, že všechno plně odpovídá normám, a přitom je obcházet, je poněkud zvláštní.
27.4.2009 13:57 Non_E | skóre: 24 | blog: hic_sunt_leones | Pardubice
Rozbalit Rozbalit vše Re: JQuery - otevirani rel=nofollow v novem okne
Jaký měli přesný důvod nevím, osobně si myslím, že se v xhtml zbavovali elementů, které nenesou informaci o obsahu, nýbrž jen informaci o způsobu prezentace této informace. Proto si myslím, že není důvod nechávat a obhajovat v xhtml kódu zjevné chyby, když chování můžu definovat javascriptem (stejně jako vzhled zpravidla definujeme kaskádovými styly).

Problém vyskakovacích oken jsem řešil v zaměstnání. K hotovému projektu přišel požadavek, aby se vybrané odkazy otevíraly v samostatném okně. Usmlouval jsme to na odkazy na cizí weby. Jak to implementovat? Změnou doctype jsou povoleny další "zastaralé" elementy. Až po mně někdo bude web upravovat, lákalo by ho to k jejich používání (validátor by neprotestoval). Úpravy vzhledu se pak budou dobudoucna komplikovat. Naopak použití javascriptu je neškodné.

Vyskakovací okna jsou podle mého názoru většinou špatné. Pokud však v xhtml musí být, tak pomocí javascriptu.
Only Sith deals in absolutes.
27.4.2009 15:11 Filip Jirsák | skóre: 68 | blog: Fa & Bi
Rozbalit Rozbalit vše Re: JQuery - otevirani rel=nofollow v novem okne
Proto si myslím, že není důvod nechávat a obhajovat v xhtml kódu zjevné chyby
Místo toho tedy chybu schováte a dáte místo ní ještě mnohem horší kód -- který nejen, že otvírá odkazy do nového okna, ale ještě je závislý na JavaScriptu a neumožňuje prohlížeči snadno zjistit, o co se jedná. Zatímco s target=_blank může uživatel, kterému se otvírání do nových oken nelíbí, tuto funkcionalitu v prohlížeči přebít, s vaším skriptem nic nenadělá, maximálně může otvírání nových oken skriptem zakázat úplně.
Problém vyskakovacích oken jsem řešil v zaměstnání. K hotovému projektu přišel požadavek, aby se vybrané odkazy otevíraly v samostatném okně. Usmlouval jsme to na odkazy na cizí weby. Jak to implementovat? Změnou doctype jsou povoleny další "zastaralé" elementy.
Jednoduše -- zachovat doctype a použít nevalidní target=_blank. Až to po vás bude někdo upravovat, uvidí, že je tam něco nestandardního.
Vyskakovací okna jsou podle mého názoru většinou špatné. Pokud však v xhtml musí být, tak pomocí javascriptu.
Podle vzoru "proč to dělat špatně, když to lze udělat ještě hůř". Když už vyskakovací okna, tak jedině atributem target=_blank, aby měl uživatel možnost tohle chybné rozhodnutí programátora nebo manažera ještě napravit.
27.4.2009 19:39 Non_E | skóre: 24 | blog: hic_sunt_leones | Pardubice
Rozbalit Rozbalit vše Re: JQuery - otevirani rel=nofollow v novem okne
Jednoduše -- zachovat doctype a použít nevalidní target=_blank. Až to po vás bude někdo upravovat, uvidí, že je tam něco nestandardního.

To je s prominutím nepřesvědčivé. Nestandardní chování, popup, můžeme naznačit třeba ikonkou za odkazem. Nemusím kvůli tomu pokazit kód. V programu přeci programátor taky nenechá syntaktickou chybu, protože chce dát najevo, že program bude dělat něco nestandardního. Nepřijde mi rozumné nechávat v kódu chyby jen proto, že nesouhlasí s rozhodnutím šéfa.

Only Sith deals in absolutes.
Fluttershy, yay! avatar 27.4.2009 20:42 Fluttershy, yay! | skóre: 93 | blog:
Rozbalit Rozbalit vše Re: JQuery - otevirani rel=nofollow v novem okne
Ne nesouhlasí s rozhodnutím šéfa, nýbrž nesouhlasí s odůvodnitelným standardem. Kdyby vše mělo viset na markeťácích, managorech a jim podobných, byla by kompatibilita a použitelnost na hranici bodu mrazu.
🇵🇸Touch grass🇺🇦 ✊ ani boha, ani pána
27.4.2009 21:23 Filip Jirsák | skóre: 68 | blog: Fa & Bi
Rozbalit Rozbalit vše Re: JQuery - otevirani rel=nofollow v novem okne
On ten kód kazí tím JavaScriptem, a to mnohem víc, než by jej pokazil jeden nevalidní atribut. Právě o tom tady celou dobu píšu – aby se vyhnul jedné prasárně v kódu, udělá jinou, daleko horší. Ještě by někoho mohlo odkazy otvírané do nového okna nahradit nějaký Flashem, to by bylo ještě lepší…
vlastikroot avatar 27.4.2009 21:31 vlastikroot | skóre: 24 | blog: vlastikovo | Milevsko
Rozbalit Rozbalit vše Re: JQuery - otevirani rel=nofollow v novem okne
Ještě by někoho mohlo odkazy otvírané do nového okna nahradit nějaký Flashem, to by bylo ještě lepší…
no fuj ! takovy sprostarny tu rikat :-D az po 25 hodine prosiim :-D
We will destroys the Christian's legion ... and the cross, will be inverted
27.4.2009 22:08 Non_E | skóre: 24 | blog: hic_sunt_leones | Pardubice
Rozbalit Rozbalit vše Re: JQuery - otevirani rel=nofollow v novem okne
Zaměňujete správně napsané stránky (prostě komunikace podle standardu) a stránky, které jsou "user friendly". Dodržování standardů je základ komunikace, browser pošle standardizovaný požadavek, web server standardizovaně odpoví a pošle stránku napsanou také podle standardu. Přesně jsem to nehledal, ale domnívám se, že atribut target by dokonce měl být v xhtml 1.0 Strict ignorován. Pop-up "user friendly" není. Pokud ho ale musím udělat, není na mě, abych za něj nesl odpovědnost nebo výčitky svědomí. Je ale mou zodpovědností, abych odvedl práci, za kterou jsem placen, kvalitně s dodržením standardů oboru.

Strávil jsem chvíli času nad otestováním obou variant. Na internet jsem umístnil testovací stránku". Výsledky testování v dostupných prohlížečích jsou:
  • Arora 0.6 otevře oba odkazy do nového okna, javascriptem vyvolané okno není maximalizované.
  • Opera 9.64 otevře oba odkazy do nového tabu.
  • Firefox 3.0.9 otevře oba odkazy do nového tabu.
  • IE 8 (cizí pc) si se stránkou neví rady (Content-Type nebo xml deklarace?). Na úpravy testu nemám čas, podle internetu ale okna umí dávat jako taby.
  • Konqueror 4.2.2 otevře oba popupy do samostatných tabů. U atributu target zobrazil upravený kurzor.
Suma sumárum je chování prohlížečů stejné u obou variant. Uživatel javascriptem obtěžován nadměrně není. Pokud vypne javascript, chová se javascriptová varianta slušně, odkaz je zachován v xhtml. Varianta s javascriptem je ale napsaná korektně, varianta s atributem target není. Z toho vyvozuju závěr, že varianta s atributem target reálně kazí kód a je dokonce méně přístupná. Javascriptová varianta nekazí kód a je zachována přístupnost; jen pro zjednodušení jsem použil atribut onclick a ne externí soubor.

Máte k provedenému testu nějaké věcné připomínky nebo budeme vytahovat strašidla v podobě flashe nebo třeba Silverlight?
Only Sith deals in absolutes.
27.4.2009 23:00 Ladicek | skóre: 28 | blog: variace | Havlíčkův brod
Rozbalit Rozbalit vše Re: JQuery - otevirani rel=nofollow v novem okne
Mám připomínku, kterou už jsem zmínil níže: XHTML 1.1. Přestaňte lhát, atribut target je validní.
Ještě na tom nejsem tak špatně, abych četl Viewegha.
27.4.2009 23:39 Non_E | skóre: 24 | blog: hic_sunt_leones | Pardubice
Rozbalit Rozbalit vše Re: JQuery - otevirani rel=nofollow v novem okne
Už od začátku píšu a v příkladu uvádím xhtml 1.0 Strict. Věc s Basic variantou jsme si už také vysvětlili. Je možné měnit doctype, používat modularizovaný xhtml 1.1, doctype pro pda apod. Tam se problém nevyskytuje. Já se do popsané situace, kdy jsem měl vyrobit pop-up v xhtml 1.0 Strict, skutečně dostal a lepší řešení jsem nenašel. Proto ho taky hájím a neomezím se na prosté konstatování názoru.

Nemá cenu osočovat se ze lhaní, jde vlastně o odbornou debatu s velmi úzkým předmětem. Ač s Filipem Jirsákem nesouhlasím a proti použití xhtml 1.1 Basic mám výhrady, nevidím důvod, proč nemůžeme diskutovat relativně korektně, ne?
Only Sith deals in absolutes.
28.4.2009 00:18 Ladicek | skóre: 28 | blog: variace | Havlíčkův brod
Rozbalit Rozbalit vše Re: JQuery - otevirani rel=nofollow v novem okne
Není to nutně XHTML Basic, zkusil jsem odkazovanou stránku zvalidovat jako XHTML 1.1, což validátor umí, a jedinou chybou byl atribut lang (měl by být tuším xml:lang). Také v HTML 5 je atribut target povolen. XHTML 1.0 je dle mého názoru v tomto případě jaksi… mimo.

Ono se řekne, XHTML 1.0 Strict… ale jaké výhody to přináší? O otevírání odkazu do nového okna si můžeme myslet co chceme, ale je to natolik častý požadavek, že jeho vyřešení prostředky HTML se přímo nabízí. Tak nevidím jediný důvod, proč ho nepoužít.
Ještě na tom nejsem tak špatně, abych četl Viewegha.
28.4.2009 01:19 Non_E | skóre: 24 | blog: hic_sunt_leones | Pardubice
Rozbalit Rozbalit vše Re: JQuery - otevirani rel=nofollow v novem okne
Překvapeně koukám a druhá edice xhtml 1.1 skutečně atribut target obsahuje :-) Myslel jsem, z toho co jste psal, že to umí jen basic. Čistým řešením modelového problému je změna dtd na xhtml 1.1. Jsou tak splněna všechna kritéria.
Only Sith deals in absolutes.
28.4.2009 09:01 Ladicek | skóre: 28 | blog: variace | Havlíčkův brod
Rozbalit Rozbalit vše Re: JQuery - otevirani rel=nofollow v novem okne
Oni v tom mají kucí trošičku bordel – ve schématu jsem target nenašel, i když v DTD jo. Ale možná jsem jenom blbě hledal, ono by nedávalo smysl, kdyby v Basic variantě byl a v "plné" ne.
Ještě na tom nejsem tak špatně, abych četl Viewegha.
28.4.2009 09:49 Filip Jirsák | skóre: 68 | blog: Fa & Bi
Rozbalit Rozbalit vše Re: JQuery - otevirani rel=nofollow v novem okne
Vy ale pořád píšete o kódu, já píšu o významu. Když v HTML kódu deklarujete, že chcete otevřít odkaz do nového okna, může prohlížeč dle implementace a nastavení odkaz otevřít v novém okně, v nové záložce nebo ve stávajícím okně. Když to uděláte pomocí JavaScriptu, nemá prohlížeč (ani třeba vyhledávač) šanci zjistit, co se má dít. Může pouze tupě vykonávat příkazy. Pokud narazí na příkaz otevřít nové okno, může podle nastavení tento příkaz provést (otevřít nové okno), změnit jej na otevření nové záložky, nebo příkaz zcela ignorovat. Nemůže ale třeba otevřít stránku v tom samém okně -- protože za normálních okolností máte po tomto příkazu dvě okna, která spolu třeba mohou komunikovat. Pokud by se prohlížeč rozhodl místo toho otevřít odkaz ve stejném okně, nebude komunikace mezi okny fungovat a pokračování skriptu třeba havaruje. Což by ostatně moc nevadilo, dobře programátorovi tak.
Varianta s javascriptem je ale napsaná korektně, varianta s atributem target není.
Není napsaná korektně, pouze její kód odpovídá nějaké syntaxi. "Korektně" se vztahuje na chování. O programu např. "kalkulačka" taky nebudete tvrdit, že je napsaný korektně, pokud půjde přeložit, ale až v okamžiku, kdy bude správně počítat. Navíc XML dokument, kde je víc atributů, než předpokládá nějaké jedno schéma, je korektní -- kvůli tomu XML vzniklo, aby bylo možné strukturované dokumenty rozšiřovat o další informace, které autor původního schématu nepředpokládal. Pravda, sice by bylo lepší nové věci přidávat v jiném jmenném prostoru, ale to by se W3C muselo zabývat rozvojem webu a XHTML a ne nesmysly typu HTML5.
Z toho vyvozuju závěr, že varianta s atributem target reálně kazí kód a je dokonce méně přístupná.
Vy ten kód ale chcete zkazit, takže pokud ten kód nakonec jako zkažený nevypadá, je něco špatně. Mluvit v jedné větě o přístupnosti a JavaScriptovém otevírání nových oken je opravdu veletoč.
28.4.2009 15:14 Non_E | skóre: 24 | blog: hic_sunt_leones | Pardubice
Rozbalit Rozbalit vše Re: JQuery - otevirani rel=nofollow v novem okne
Nemá podle mě smysl dále pokračovat. Vy jste ochotný obětovat dodržování standardu, já část přístupnosti. Optimální řešení celého modelového problému vzešlo z diskuze s Ladicekem.
Only Sith deals in absolutes.
28.4.2009 15:22 Filip Jirsák | skóre: 68 | blog: Fa & Bi
Rozbalit Rozbalit vše Re: JQuery - otevirani rel=nofollow v novem okne
Vy jste ochotný obětovat dodržování standardu, já část přístupnosti.
Přesně tak. Já totiž nedělám stránky pro validátor, ale pro uživatele...
28.4.2009 17:29 Non_E | skóre: 24 | blog: hic_sunt_leones | Pardubice
Rozbalit Rozbalit vše Re: JQuery - otevirani rel=nofollow v novem okne
Aspoň, že jste mě odhlalil. Když má prohlížeč otevřít nové okno a on to nemůže (neměl by) ignorovat, dokonale se zbortí přístupnost. Podle mě to je marginální problém, nebo ne? Kolik prohlížečů je tahle nastaveno, aby linky vždy otevírali ve stejném okně? Z těch co mám k dispozici já ani jeden. Podle vás je ale v tom okamžiku stránka stvořená jen pro validátor.

Jsou reálné problémy, kvůli kterým stojí za to porušit standard. Javascript window.open(this.href) za to opravdu nestojí.
Only Sith deals in absolutes.
28.4.2009 14:28 petr_p | skóre: 59 | blog: pb
Rozbalit Rozbalit vše Re: JQuery - otevirani rel=nofollow v novem okne

Korektní řešení by bylo použít XLink:

<element xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="něco" xlink:type="simple" xlink:show="new">Odkaz</element>
28.4.2009 15:20 Filip Jirsák | skóre: 68 | blog: Fa & Bi
Rozbalit Rozbalit vše Re: JQuery - otevirani rel=nofollow v novem okne
To by bylo korektní v paralelním světě, kde by zvítězilo XHTML 2.0 a ne HTML 5. Bohužel žijeme v tom vesmíru, kde nastala ta špatná varianta.
28.4.2009 18:37 petr_p | skóre: 59 | blog: pb
Rozbalit Rozbalit vše Re: JQuery - otevirani rel=nofollow v novem okne

Zatraceně, máte pravdu. Mozilla chce vyhodit podporu XLinku, protože HTML5 a protože by kód byl moc složitý (v XHTML nikdy nefungoval, v MathML jej raději zrušili, o přítomnosti v SVG hovoří jako o historickém reliktu). Asi si půjdu najít strom :|

27.4.2009 16:34 Michal Kubeček | skóre: 72 | Luštěnice
Rozbalit Rozbalit vše Re: JQuery - otevirani rel=nofollow v novem okne
Vyskakovací okna jsou podle mého názoru většinou špatné.

Většinou? Téměř vždy…

27.4.2009 17:26 M. Lox | skóre: 12
Rozbalit Rozbalit vše Re: JQuery - otevirani rel=nofollow v novem okne
Zcela vždy. Od toho tu je prostřední tlačítko na myši.
make menuconfig, not war!
27.4.2009 13:00 Ladicek | skóre: 28 | blog: variace | Havlíčkův brod
Rozbalit Rozbalit vše Re: JQuery - otevirani rel=nofollow v novem okne
V XHTML Basic 1.1 jo.
Ještě na tom nejsem tak špatně, abych četl Viewegha.
27.4.2009 14:04 Non_E | skóre: 24 | blog: hic_sunt_leones | Pardubice
Rozbalit Rozbalit vše Re: JQuery - otevirani rel=nofollow v novem okne
O xhtml Basic 1.1 jsem nevěděl. Ani jsem existenci target="_blank" nekontroloval, protože podle doporučení totiž není určeno pro použití v normálních prohlížečích.
It is designed for Web clients that do not support the full set of XHTML features;
for example, Web clients such as mobile phones, PDAs, pagers, and settop boxes.
Only Sith deals in absolutes.
27.4.2009 14:32 Ladicek | skóre: 28 | blog: variace | Havlíčkův brod
Rozbalit Rozbalit vše Re: JQuery - otevirani rel=nofollow v novem okne
Řekl bych, že it is designed for a určeno pro neznamená to samé. A o řádek níž čtu, že XHTML Basic is designed as a common base that may be extended. The goal of XHTML Basic is to serve as a common language supported by various kinds of user agents.

Krom toho mám pocit, že by to mělo být i v "plném" XHTML 1.1, ale DTD a schéma se v tomto zdají rozcházet.
Ještě na tom nejsem tak špatně, abych četl Viewegha.
Algi avatar 27.4.2009 12:28 Algi | skóre: 1 | blog: Sinner
Rozbalit Rozbalit vše Re: JQuery - otevirani rel=nofollow v novem okne
Odpovědět | Sbalit | Link | Blokovat | Admin
Nesnáším otevírání v novém okně. A obzvlášť nesnáším, když mi to okno ještě někdo "maximalizuje" a zobrazí stavovou lištu, kterou běžně mám schovanou. To je typicky Windowsácký zlozvyk - mít všechno maximalizované. U náhledů obrázků to lze řešit novou vrstvou na webové stránce a jinde mě takhle z hlavy nenapadá, proč by se to mělo otevírat někam zvlášť ...

Ale nic proti tomu tipu, co jsi psal. To jsem si jenom povzdechl nad některými neslušnými stránkami (třebas moje banka).
I'm a firestarter, twisted firestarter...
Fluttershy, yay! avatar 27.4.2009 12:34 Fluttershy, yay! | skóre: 93 | blog:
Rozbalit Rozbalit vše Re: JQuery - otevirani rel=nofollow v novem okne
Na menších displejích je maximalizace nutnost. Hloupé ale je, když si to program vynucuje.
🇵🇸Touch grass🇺🇦 ✊ ani boha, ani pána
Algi avatar 27.4.2009 13:41 Algi | skóre: 1 | blog: Sinner
Rozbalit Rozbalit vše Re: JQuery - otevirani rel=nofollow v novem okne
Na své 15"ce jsem tuhle potřebu neměl, ale asi máš pravdu. Zastávám se názoru, že okna by měly zabírat pouze tolik místa, kolik potřebují. A bankovnictví tolik místa fakt nepotřebuje :-) Jediná aplikace, kterou jsem míval maximalizovanou byl Lightroom (než mu vypršela licence :-( a byl nahrazen iPhoto).
I'm a firestarter, twisted firestarter...

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.