Visualizzazione dei risultati da 1 a 8 su 8
  1. #1
    Utente di HTML.it
    Registrato dal
    Oct 2004
    Messaggi
    267

    validazione xhtml e target

    Salve, ho letto per la prima volta oggi che il target="_blank" è stato bandito dall'xhtml.
    Ho letto gli articoli di html.it a riguardo:
    http://webdesign.html.it/articoli/le...endo-validi/2/

    Ho capito che per essere conforme con l'xhtml l'href deve avere > class="ext"> ma non ho capito come devo mettere il seguente codice tra gli head della pagina:

    onload=function(){
    if(!document.getElementsByTagName) return;
    l=document.getElementsByTagName("a");
    for(i=0;i<l.length;i++){
    if(l[i].className.indexOf("ext")!=-1){
    l[i].title="link esterno, si apre in una nuova finestra";
    l[i].onclick=function(){window.open(this.href);return( false)};
    }
    }
    }

    Così è giusto o come:



    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml" lang="it" xml:lang="it">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
    <title>titolo pagina</title>
    <meta name="description" content="descrizione" />
    <meta name="keywords" content="finestra,link,nuova,target" />
    <link rel="stylesheet" type="text/css" media="screen, handheld, print" href="home.css" />



    onload=function(){
    if(!document.getElementsByTagName) return;
    l=document.getElementsByTagName("a");
    for(i=0;i<l.length;i++){
    if(l[i].className.indexOf("ext")!=-1){
    l[i].title="link esterno, si apre in una nuova finestra";
    l[i].onclick=function(){window.open(this.href);return( false)};
    }
    }
    }


    </head>

  2. #2
    Frontend samurai L'avatar di fcaldera
    Registrato dal
    Feb 2003
    Messaggi
    12,924
    una precisazione: non è che un link per essere validato xhtml _deve_ avere classe "ext"
    ma per poter aprire un link in una nuova finestre si utilizza una funzione javascript per tenere il codice validato.

    Tale funzione per contraddistinguere i link necessita di identificare gli elementi <a> attraverso un attributo (come ad esempio una classe) che avrà un certo valore

    codice:
    
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml" lang="it" xml:lang="it">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
    <title>titolo pagina</title>
    <meta name="description" content="descrizione" />
    <meta name="keywords" content="finestra,link,nuova,target" />
    <link rel="stylesheet" type="text/css" media="screen, handheld, print" href="home.css" />
    
    <script type="text/javascript">
    
    window.onload = function(){
    
      if(!document.getElementsByTagName) return;
      var l=document.getElementsByTagName("a");
    
      for(i=0;i<l.length;i++){
        if (l[i].className.match(/ext/)){
          l[i].target = "_blank";
        }
      }
    }
    </script>
    </head>
    
    <body>
    link esterno
    
    link interno
    
    </body>
    Ciao
    -Fab-
    Vuoi aiutare la riforestazione responsabile?

    Iscriviti a Ecologi e inizia a rimuovere la tua impronta ecologica (30 alberi extra usando il referral)

  3. #3
    Utente di HTML.it
    Registrato dal
    Oct 2004
    Messaggi
    267
    Grazie, per avermi rispoto. Ieri, poi, avevo trovato un'altra soluzione. Puoi dirmi se è corretta?

    nella pagina ho messo:

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml" lang="it" xml:lang="it">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
    <title>titolo pagina</title>
    <meta name="description" content="descrizione" />
    <meta name="keywords" content="finestra,link,nuova,target" />
    <link rel="stylesheet" type="text/css" media="screen, handheld, print" href="/layout.css" />



    <script type="text/javascript" src="nuovafinestra.js"></script>

    </head>

    <body>

    e ne file nuovafinestra.js ho messo (così come lo vedi):

    onload=function(){
    if(!document.getElementsByTagName) return;
    l=document.getElementsByTagName("a");
    for(i=0;i<l.length;i++){
    if(l[i].className.indexOf("ext")!=-1){
    l[i].title="link esterno, si apre in una nuova finestra";
    l[i].onclick=function(){window.open(this.href);return( false)};
    }
    }
    }


    E' giusto?
    Ehm! , un'altra cosa. Potrei utilizzare il file nuovafinestra.js per inserire altre funzioni di altra applicazioni oltre a questa?

  4. #4
    Utente di HTML.it
    Registrato dal
    Oct 2004
    Messaggi
    267
    Nessuno mi conferma se è giusto?

  5. #5
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    21,188
    Ci sono degli errori.

    1. una funziona chiamata dall'onload nonpuo` stare nella head: a quel punto la pagina non esiste ancora, quindi non si puo` definire cosa deve fare un evento riferito a qualcosa che non esiste.

    Puoi mettere la funzione nella head, ma la chiamata va fatta dopo.

    Es: nella head:
    function f_onload() {
    ...
    }

    Nel tag body:
    <body onload="f_onload();">
    Oppure (in alternativa):
    <body>
    ...
    <script ...>window.onload = f_onload;</script> (nota che in questo caso non ci sono le parentesi)


    Nel blocco di script della head (che hai chiamato "nuovafinestra.js") puoi inserire quello che vuoi, come se fosse uno script inserito nella head (con il file esterno funziona anche in XHTML Strict).
    Nuova politica di maggiore severita` sui titoli delle discussioni: (ri)leggete il regolamento
    No domande tecniche in messaggi privati

  6. #6
    Utente di HTML.it
    Registrato dal
    Oct 2004
    Messaggi
    267
    Salve, vorrei riprendere questo vecchio post per riesumare lo stesso problema che non ho piu risolto.

    In pratica qual'è il codice che dovrei utilizzare per aprire una pagina in una nuova finestra evitando di scrivere target _blank ed utilizzando javascript e con class

  7. #7

  8. #8
    Utente di HTML.it
    Registrato dal
    Oct 2004
    Messaggi
    267
    ma con class al posto di rel non c'è un sistema?

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.