Comunidad de diseño web y desarrollo en internet online

Validador w3c y atributo target.

Citar            
MensajeEscrito el 10 Abr 2008 10:03 am
Hola, tengo que hacer una web que cumpla el validador w3c:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN""http://www.w3.org/TR/html4/strict.dtd">

Me da error en <a href> en el atributo target="_blank", debe ser que el strict no permite esto.
Hay alguna otra forma de conseguir que un link se te abra en otra ventana sin usar 'target' y asi pasar el validador?? Gracias

Por itismadrid

1 de clabLevel



 

msie7
Citar            
MensajeEscrito el 10 Abr 2008 01:20 pm
El atributo target, es desaprobado por la W3C como parte de los enlaces.
Lo más parecido que puedes hacer, es mediante javascript, usar el "window.open(URL)", sin ningún parámetro adicional:

Código :

<a href="http://terra.es" onclick="javascript:window.open('http://terra.es');return false;">link</a>
Si tiene javascript, el link se abrirá en otra página.
Si no tiene javascript, se abrirá en la misma (que ya es algo).
Pero esto, no es lo adecuado. Sigue leyendo.

¿Hay otro camino?
Otra opción, es modificar la DTD de la W3C, y añadir el soporte para <base target="" />
Yo lo he hecho, y no hay problema.
Añadir en:
Imported Names
<!ENTITY % FrameTarget "NMTOKEN">
<!-- render in this frame -->

Actualizar en:
Document Head
<!-- document base URI -->
<!ELEMENT base EMPTY>
<!ATTLIST base
id ID #IMPLIED
href %URI; #IMPLIED
target %FrameTarget; #IMPLIED
>

y actualizar en:
The Anchor Element
<!-- content is %Inline; except that anchors shouldn't be nested -->
<!ELEMENT a %a.content;>
<!ATTLIST a
%attrs;
%focus;
charset %Charset; #IMPLIED
type %ContentType; #IMPLIED
name NMTOKEN #IMPLIED
href %URI; #IMPLIED
hreflang %LanguageCode; #IMPLIED
rel %LinkTypes; #IMPLIED
rev %LinkTypes; #IMPLIED
shape %Shape; "rect"
coords %Coords; #IMPLIED
target %FrameTarget; #IMPLIED
>
*se debe añadir lo indicado en rojo, en cada caso.

Guardas esta nueva DTD ("xhtml1-strict-T-I.dtd", en el ejemplo), en una carpeta accesible de tu WEB.
Y luego referencias los Doctypes a ella:
<!DOCTYPE html PUBLIC "-//tu_server.es//DTD XHTML 1.0 Strict +(TARGET)//EN"
"http://www.tu_server.es/ruta_accesible/xhtml1-strict-T-I.dtd">

De esa manera, el validador revisa ESA DTD, en lugar de las que tiene por "default", y valida adecuadamente.

Como muestra, enseño la validación de la W3C para mi ejemplo:

(y aquí, la muestra)

PD: si quieres, puedes usar mi DTD, con soporte, además del "target", para IFRAMES, y el atributo "volume" y "autoplay" de los objetos, embed y demás. (Sólo, ten en cuenta la licencia (Creative Commons) que acompaña mi trabajo)
Aquí la tienes.

** NOTA:
Las DTD, no son más que hojas que definen los elementos que vas a usar, para que el navegador esté preparado a "leerlos".
No soy un experto (ni mucho menos) en el tema, pero no es incorrecto hacer esto.
Lo único que se hace así, es definir tu propio juego de "instrucciones" para el xHTML (que por eso es "x": eXtended)
A mi DTD, la he llamado: "DTD XHTML 1.0 Strict +(T/I)", precisamente por eso, porque es la "strict" original de la W3C (tal cual), ampliada con soporte a "Target" e "Iframes" (además del "autoplay" y "volume", de los "embed" &co)

Por El Oso Amoroso

Claber

1780 de clabLevel

6 tutoriales

 

Madrid, España, Europa, Eurasia, La Tierra, Sist.Solar, Vía Láctea, UNIVERSO

firefox
Citar            
MensajeEscrito el 11 Abr 2008 11:37 am
Muchas Gracias rizome por tu aporte. Me es de gran ayuda.

Por itismadrid

1 de clabLevel



 

msie7
Citar            
MensajeEscrito el 11 Abr 2008 01:39 pm
Me alegro de haberte sido de utilidad.
:D

Por El Oso Amoroso

Claber

1780 de clabLevel

6 tutoriales

 

Madrid, España, Europa, Eurasia, La Tierra, Sist.Solar, Vía Láctea, UNIVERSO

firefox
Citar            
MensajeEscrito el 12 Abr 2008 07:21 pm
Utiliza el código Javascript para abrir los enlaces en una ventana nueva. La opción de modificar DTD a mi no me gusta.

Por nachoseo

15 de clabLevel



 

firefox
Citar            
MensajeEscrito el 12 Abr 2008 07:42 pm
Jajajaja!!!

El xHTML apareció para ser "eXtendido".
Emplear tus propias DTD, es una parte de esa "eXtensión".

Por El Oso Amoroso

Claber

1780 de clabLevel

6 tutoriales

 

Madrid, España, Europa, Eurasia, La Tierra, Sist.Solar, Vía Láctea, UNIVERSO

firefox

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.