Perchè il mio documento non sta convalidando come XHTML 1.1 Strict?
-
19-09-2019 - |
Domanda
Mentre target = "_ blank" è deprecato, perché è il validatore W3C non dando un errore su questo? È possibile incollare e verificare questo codice int il validatore :
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
</head>
<body>
<p>
<a href="http://www.stackoverflow.com" title="New window will open" target="_blank">Link opens in new window</a>
</p>
</body>
</html>
Modifica
Vuol dire che XHTML 1.1 supporta target =”_ blank”, ma XHTML 1.0 strict non lo fa? O è un bug nel validatore W3C?
Soluzione
Stai per essere convalidate come XHTML Transitional , piuttosto che Strict . Se si sostituisce manualmente il doctype a XHTML 1.0 Strict si ottiene questo errore:
Errore Linea 11, Colonna 76:. Attributo "target" esiste, ma non può essere utilizzato per questo elemento
... om" title = "" target = "si aprirà Nuova finestra _ blank"> link si apre in una nuova finestra
Con questo tipo di documento, se si vuole essere rigorosi:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
Gli schemi transitorie consentono ancora alcuni elementi e attributi deprecati, immagino che per aiutare le persone a transizione in passi verso un markup più rigoroso.
Modifica
OK, in modo che il codice originale era XHTML 1.1 di cui esiste solo una versione singola (senza Strict / Transitional), e secondo questa FAQ l'attributo target è infatti non è consentito. Quindi credo che questo deve essere un bug nel validatore.
Altri suggerimenti
Si è deprecato, ma non rimosso. Ecco perché penso che ci sia un problema nel convalidare questo.
Il XHTML1.1 documentazione mostra che l'attributo target di un elemento a
può essere "nulla".
Fa significa XHTML 1.1 bersaglio supporto =”_ blank” ma XHTML 1.0 strict no?
Beh, sì.
Se avete bisogno di una soluzione per il vostro problema, allora questo è uno di loro. Un'altra opzione è quella di utilizzare window.open () al posto del target = "_ blank".
Ho usato il codice e ho ottenuto il seguente errore.
Errore trovato durante il controllo questo documento XHTML 1.1!
La convalida di uscita: 1 Errore
-
Errore Linea 11, Colonna 76: non v'è alcun attributo "target"
... .com" title = "si aprirà Nuova finestra" target = "_ blank"> link si apre in una nuova finestra
Il validatore sta lavorando come del 2012/01/30. Non è possibile passare la convalida utilizzando target = "_ blank"
Sostituire con questa porzione valida di codice:
onclick = "target = '_ blank';"
Mentre xhtml può sostenere "targrt =" _ blank", esso non convalidarlo perché Hase stato svalutato. Se non si desidera utilizzare JS, si dovrà usare di transizione, invece di rigorosa nel vostro 'tipo di documento' .