Portál AbcLinuxu, 3. května 2025 22:30
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
Proto si myslím, že není důvod nechávat a obhajovat v xhtml kódu zjevné chybyMí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.
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
target
je validní.
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.
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.
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č.
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...
window.open(this.href)
za to opravdu nestojí.
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>
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 :|
Vyskakovací okna jsou podle mého názoru většinou špatné.
Většinou? Téměř vždy…
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.
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.