wh3 validator validate validar validador validacion online corregidor html validation target w3c xhtml-1.0-strict

validator - XHTML Strict 1.0-target="_ blank" ¿no es válido?



w3c validation css (8)

Acabo de validar mi documento XHTML Strict 1.0 real con el servicio de validador w3c ... y dice que

<ul id="socialnetwork"> <li><a href="http://www.twitter.com" target="_blank"></a></li> <li><a href="http://www.flickr.com" target="_blank"></a></li> <li><a href="http://www.xing.com" target="_blank"></a></li> <li><a href="http://www.rss.com" target="_blank"></a></li> </ul>

the target = "_ blank" no es válido ... pero necesito el target blank para que se abra una nueva pestaña en el navegador, para que el usuario no abandone la página principal.

¿Que puedo hacer? ¿Por qué esto no es válido?


Es posible que desee consultar las Preguntas frecuentes sobre W3: http://www.w3.org/MarkUp/2004/xhtml-faq#target

¿Por qué se eliminó el atributo de destino de XHTML 1.1?

No fue XHTML 1.0 se presenta en tres versiones: estricta, de transición y de conjunto de marcos. Los tres de estos se mantuvieron deliberadamente lo más cerca posible de HTML 4.01 como lo permitiría XML. XHTML 1.1 es una versión actualizada de XHTML 1.0 estricta, y ninguna versión de HTML estricta ha incluido el atributo de destino. Las otras dos versiones, de transición y de conjunto de marcos, no se actualizaron porque no había nada que actualizar. Si desea usar el atributo de destino, use XHTML 1.0 transitional.


La mejor manera de usar target en XHTML STRICT es: onclick="target=''_blank'';"

<a href="http://botje.tnhteam.com/" onclick="target=''_blank'';">Botje is overal</a>

Ejemplo: haga clic en el botón ESTRICTO en la parte inferior

si necesita _self o cualquier otro objetivo, puede cambiar _blank a _self por ejemplo: onclick="target=''_self'';"

Espero que esta respuesta sea útil para algunos de ustedes ...


La pregunta que debe hacerse no es cómo "sortear" la restricción de Strict, sino por qué quiere usar XHTML Strict 1.0 en primer lugar.

En su caso, simplemente usaría Transitional como DTD. Por supuesto, a menos que esté desarrollando un sistema operativo específico que, por ejemplo, no permita que se abran múltiples ventanas, por ejemplo, en sistemas de automóviles, teléfonos móviles o aparatos más exóticos. Lo cual es, por cierto, la razón por la que el objetivo está ausente en el HTML estricto.

Pero como parece que se desarrolla para un uso "normal", su tipo de documento debería reflejar eso y debería usar:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

Vea también http://www.w3.org/MarkUp/2004/xhtml-faq#target cheers J


Para esta situación, uso una solución jQuery simple que la valida con XHTML Strict y permite que aparezcan nuevas ventanas.

<a href="http://www.example.com" class="linkExternal">Example URL</a> <script type="text/javascript"> $(function(){ $(''a.linkExternal'').on(''click'',function(e){ e.preventDefault(); window.open($(this).attr(''href'')); }); });


Prueba esto:

<a href="#" onclick="window.open(''urlgoeshere'');">Link</a>


Si bien no puedo decir por qué este atributo se considera no válido como solución alternativa, puede agregar este atributo con javascript si desea que su sitio se valide como XHTML Strict.


Sugiero no agregar en el atributo de destino. Se eliminó debido a razones de accesibilidad y no me gusta cuando la página decide por cómo se abren las etiquetas de mi navegador. Por supuesto, usted es libre de hacerlo, si lo desea. Le mostraré un método de JavaScript que Darin mencionó anteriormente que le permite validar como XHTML 1.0 Strict o XHTML 1.1:

Código HTML:

<!-- Added link titles for better testing purposes --> <ul id="socialnetwork"> <li><a href="http://www.twitter.com/" class="targetblank">Twitter</a></li> <li><a href="http://www.flickr.com/" class="targetblank">Flickr</a></li> <li><a href="http://www.xing.com/" class="targetblank">XING</a></li> <li><a href="http://www.rss.com/" class="targetblank">RSS</a></li> </ul>

Código de JavaScript:

window.onload = function() { // Code if document.getElementByClassName() doesn''t exist if (document.getElementsByClassName == undefined) { document.getElementsByClassName = function(className) { var hasClassName = new RegExp("(?:^|//s)" + className + "(?:$|//s)"); var allElements = document.getElementsByTagName("*"); var results = []; var element; for (var i = 0; (element = allElements[i]) != null; i++) { var elementClass = element.className; if (elementClass && elementClass.indexOf(className) != -1 && hasClassName.test(elementClass)) results.push(element); } return results; } } var anchorList = document.getElementsByClassName(''targetblank''); for (var i in anchorList) { anchorList[i].target = ''_blank''; } }

Por supuesto, puede omitir el archivo window.onload si ya lo incluyó en otra parte, pero recomiendo usarlo (o usar otra función de carga, como $(document).ready(); ) de JQuery, por lo que el JavaScript se carga cuando la página termina. cargando. Ahora, todo lo que necesita hacer es targetblank cada enlace de anclaje una clase de " targetblank ", y los enlaces deberían abrirse en una nueva pestaña.


prefiero esto

<a href="http://myurl.com" onclick="this.target=''_blank''">Anchor text</a>