HTML - Motivo storico o tecnico per target = "_ blank" con trattino basso?


14

Fino ad oggi mi chiedo perché target="_blank"non sia diventato target="blank". Sono sicuro che anche i browser potrebbero capirlo.

Ci sono ragioni storiche o tecniche per questa decisione / specifica?


L'intero targetconcetto, sebbene sia ancora consentito in HTML 5, è generalmente considerato obsoleto. w3.org/community/webed/wiki/HTML_links_-_lets_build_a_web (nella 7 Frames and popups — just say nosezione)
Jens Mühlenhoff

1
Qualcuno può spiegarmi perché questa domanda non è stata migrata su StackOverflow su questo sito? È una scelta perfetta per SO e molto debole per SU - secondo la mia opinione.
trejder,

Risposte:


21

Se dovessi usare il target="blank"tuo link si aprirà in una nuova scheda / finestra. Tuttavia, c'è una sottile differenza. Facendo nuovamente clic sul collegamento, la finestra che è stata aperta la prima volta verrà riutilizzata anziché aprirne una nuova.

Questo perché l' targetattributo può essere utilizzato per qualcosa di più che aprire semplicemente una nuova finestra. Ha quattro valori predefiniti, ma consente anche di specificare il proprio target. Se guardi la pagina relativa alle scuole W3 , mostra le seguenti opzioni:

  • _blank Apre il documento collegato in una nuova finestra o scheda
  • _self Apre il documento collegato nello stesso frame in cui è stato fatto clic (impostazione predefinita)
  • _parent Apre il documento collegato nel frame principale
  • _top Apre il documento collegato in tutto il corpo della finestra
  • <framename> Apre il documento collegato in una cornice denominata

Gran parte di questo non ha senso se non si capisce un po 'di frame HTML. L'uso di un <frameset>tag HTML consente di suddividere la finestra del browser in singole sezioni (frame) ciascuna con la propria pagina. Dando un nome a un frame e usando l' targetattributo nei tuoi link è possibile controllare quale frame dovrebbe mostrare il contenuto rilevante.

Ma ci sono alcune regole aggiuntive per l'attributo target che i browser devono applicare:

  • Se la destinazione è un nome specificato dall'utente, deve iniziare con una lettera (senza caratteri di sottolineatura, numeri ecc.)
  • Se la destinazione è un nome specificato dall'utente ma nessuna cornice / finestra corrisponde a quel nome, crea una nuova scheda / finestra usando quel nome. Questo è il motivo per cui target="blank"funziona così.

Fondamentalmente non c'è motivo di cambiare la convenzione attuale poiché si _blanktratta di un caso speciale. Il tipo originale di frame non può più essere usato molto ma ci sono altri casi in cui è possibile avere oggetti nominati con cui funziona l'attributo target, ad esempio iframe che sono frame singoli incorporati direttamente in una pagina. La modifica dello standard interromperebbe molte pagine esistenti senza apportare alcun vantaggio.


7
Non dovresti fare riferimento a W3Schools: w3fools.com
Jens Mühlenhoff,

2
Non sono d'accordo sul fatto che W3Schools non sia il migliore per le linee guida per il web design o che l'utilizzo dei collegamenti con l'attributo target sia obsoleto. Tuttavia, stavo usando le informazioni per rispondere in modo specifico alla domanda originale.
James P,

1
Penso che il collegamento a risorse note per essere problematiche non sia una buona idea. La tua risposta va bene.
Jens Mühlenhoff,

1
Avrei voluto che l' target="_blank"attributo aggiuntivo non fosse necessario, ma potremmo semplicemente aggiungere un segno all'URL, ad esempio un asterisco <a href="*https://www.stackoverflow.com">Stackoverflow</a>. Ciò consentirebbe di risparmiare così tanto digitando :)
Kai Noack
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.