ugrás a tartalomhoz

XHTML 1.0 S / 1.1: mi lett a target-tel?

szucsati · 2004. Május. 13. (Cs), 01.22
Megdöbbenve tapasztaltam, hogy az XHTML 1.1 Strict és az XHTML 1.1 szabványok tiltják az <a> elemben a target beállítást. Mégis, mi van helyette? Nem találtam semmit. Pedig ez kell! Főleg a _blank.
 
1

Target

Bártházi András · 2004. Május. 13. (Cs), 08.45
A pontos indokokat én sem ismerem (csak sejtem), de hidd el, annyira nem is hiányzik. :) Egyébként egy modulba került ki, amit "importálhatsz", és így rendelkezésedre fog állni.

Megkerülni viszont nagyon egyszerű (és nekem teljesen szimpatikus így csinálni):

<a href="http://weblabor.hu"
   onclick="window.open(this.href); return false;">
  Weblabor, a kedvenc oldalam
</a>
-boogie-
2

Ezzel már én is találkozta

wiktor · 2004. Május. 13. (Cs), 10.16
Ezzel már én is találkoztam... :)
Ha jól tudom, emögött az az elv lapul, hogy új ablakot a felhasználó nyisson, ne a böngésző. Nyilván ezen lehez vitatkozni, de hát ez van... :)

A sitepoint.com-on van egy nagyon jó cikk, én azt a módszert használom.
3

Re: Ezzel már én is találkozta

Bártházi András · 2004. Május. 13. (Cs), 12.20
Szerintem nem ez a válasz. Egyszerűen az XHTML esetén modulokra bontották a DTD-jét, hogy ne legyen olyan nagy, illetve külön-külön, így párhuzamosan is lehessen dolgozni rajta, javítgatni.

http://www.w3.org/TR/xhtml-modularization/abstract_modules.html#s_targetmodule

Az XHTML 1.1 esetén is használhatod a target-et, csak kell egy megfelelő DTD-t csinálni hozzá:

http://www.juicystudio.com/tutorial/xhtml/module.asp

Az egy mellékhatás, hogy találkozik azzal az irányelvvel, hogy bízzuk a felhasználóra, hogy mi történik.

-boogie-
5

onload=run

Jano · 2004. Május. 13. (Cs), 17.39
Nem tudom. Szerintem a sitepointos megoldas nem minden tekintetben jo. Meghozza azert mert csak akkor allitja at a linkeket amikor betoltodott az oldal. SOT az onloadra atallitas altalaban rossz megoldas.

A mai bongeszok optimalizalva vannak arra, hogy szoveget minel hamarabb kitegyek. Aztan johetnek a kepek. Na most user el kezd bongeszni ramegy egy elvileg kifele mutato linkre mivel meg script nem irta at a targetet szepen abba az ablakba nyitja neki.
Vagy elofordulhat, hogy legkozelebb visszajon es olvasgat egy kicsit mielott klikkelne es ekozben letoltodik az oldal, lefut a script es ekkor mar uj ablakba fog nyilni a link.

1. Nem az altalunk kitalalt modon mukodik a link.
2. Nem feltetelunk konzisztensen mukodik.

Jo megoldas lehetne:
1. behaviorok. Sajnos csak IE, Mozilla
2. Esetleg a klikkelest elkapni egy esemenykezelovel. Ezt body-hoz kell rendelni, hogy mindenhol mukodjon.
Hatranya: ha valahol elkapjuk mar masert az esemenyt es letiltjuk a tovabb haladasat akkor megint nem fog mukodni. Persze ez eleg ritka eset.
6

Elkapás?

Hojtsy Gábor · 2004. Május. 14. (P), 15.33
Ha jól viselkedő oldalt akarsz, akkor nem írhatsz bele JS-t (anélkül is mennie kell a linknek), és a klikkelés elkapót is csak onloadra tudod hozzárendelni. Akkor meg nem jutottunk előbbre.
4

Van target

Hojtsy Gábor · 2004. Május. 13. (Cs), 12.26
A target elhagyásának lényege, hogy a felhasználót intelligens emberi lénynek tekintjük, aki tudja, hogy mit akar, és nem pedig egy szánalmas véglénynek, akire rá kell erőltetni a tutit.

A különböző ugyanúgy kinéző felhasználói felület elemek logikusan ugyanúgy kell, hogy működjenek, különben a felhasználó nem tudja, hogy mit várhat. Most ha ráklikkel egy linkre, akkor az mit fog eredményezni? A hagyomány és megszokás azt mondja, hogy új oldalra jut. A target attribútum a viselkedését változtatja meg a linknek, ami nem logikus.

Vannak olyan oldalak, ahol kis földgömb, vagy más jelzés van a link mellett (lásd a WFSZ webhelyét például). Ez segít az interfész megkülönböztetésében, tehát jelzi, hogy más funkciót kell várni az adott linktől.

Mivel ez a megjelenítés alapértelmezésben egyáltalán nem várható el a böngészőktől, ezért kikerült a szabványból ez az elem. Különben ahogy András mondta, modulként betölthető az 1.1-es XHTML-ben, az 1.0 FrameSet-nek pedig része (hiszen ott kell a linkek keretekbe irányítása érdekében). Szóval semmi sincs veszve. Javaslom a már említett Sitepointon leírt megoldást, mert az koncepcionálisan is nagyon korrekt.