Mi piace solo chiedere cosa dice il titolo. La seguente stringa è necessaria nei tag di script HTML?JavaScript <!-- //--> sono obbligatori?
<!--
//-->
Se non li uso cosa accadrebbe?
Mi piace solo chiedere cosa dice il titolo. La seguente stringa è necessaria nei tag di script HTML?JavaScript <!-- //--> sono obbligatori?
<!--
//-->
Se non li uso cosa accadrebbe?
A meno che non si scelgano browser che precedono l'elemento <script>
(ad esempio Netscape 1 e amici). (Suggerimento: non lo sei).
Se non li usi, e un browser così vecchio (così vecchio da non riuscire nemmeno a far fronte all'intestazione dell'host HTTP che è necessario per i siti che usano host virtuali) prova ad accedere al sito, quindi al contenuto dell'elemento <script>
verranno considerati come testo da visualizzare.
Ulteriori approfondimenti: Comments and CDATA: The mysterious history of script and style in HTML
Non direi "suggerimento: non lo sei", ma più come "suggerimento: se lo sei, lo stai facendo male" – Romain
Álvaro solleva un punto importante nella sua risposta tuttavia: senza gli escape CDATA, la pagina non è più un XML valido se un carattere meta come '<' è contenuto nello script. Penso che basarsi su applicazioni che risolvono in silenzio i dati non validi sia di cattivo gusto. –
@Simon Richter - La domanda riguarda l'HTML, non XHTML. È anche specificamente sull'uso dei commenti attorno al blocco di script. (E il problema XHTML * è * menzionato nel collegamento che fornisco per ulteriori letture) – Quentin
Se non vengono utilizzati, un browser da forza visualizzazione primi anni 90 del codice sorgente JS invece di eseguirlo.
No, non sono richiesti. Questa abitudine è necessaria per supportare browser molto vecchi ed è leggermente correlata all'inserimento di tag CDATA che dovrebbero essere inclusi a scopo di validazione. Nessuno dei due è richiesto, ma serve o ha servito il loro scopo, come risulta da alcune delle risposte più elaborate.
I marcatori CDATA non hanno nulla a che fare con "browser veramente vecchi", sono per i browser che analizzano XHTML con un parser XML (cioè correttamente). I commenti non hanno nulla a che vedere con la convalida (eccetto per caso se vengono utilizzati in modo errato in XHTML). – Quentin
Ho riformulato per rendere più chiaro cosa intendevo, ma ovviamente hai perfettamente ragione. – Pieter
@Quentin Non penso che ci sia qualcosa che in realtà proibisca formalmente di includere il contenuto come contenuto di testo - è solo che quindi ti viene richiesto di sfuggire ad ogni entità maggiore/minore di/e commerciale come entità html. usare CDATA significa che devi solo occuparti della sequenza di caratteri non comuni ']]>' (che potresti fare semplicemente includendo uno spazio tra due dei token) – Random832
Google "perché come commento javascript in html", primo colpo:
http://www.howtocreate.co.uk/tutorials/javascript/incorporate
Questo non è più necessario. Tutti i browser attuali sono a conoscenza dei tag script e di come trattano i loro contenuti, dal momento che fanno parte dell'HTML da HTML 3. I browser che non comprendono l'HTML 3 o gli script (praticamente mai usati ora) mostreranno lo script come se era il contenuto della pagina. Puoi nascondere lo script da loro commentando il tuo script con commenti HTML standard.
99% del tempo, non sono più necessari :) A meno che il vostro uso di alcuni veramente vecchio browser!
La cosa peggiore che può accadere è che la pagina viene recuperata da un agente utente che non è a conoscenza del tag <script>
e tenta di analizzare il blocco di script come normale HTML. Il codice JavaScript verrà gestito come testo normale e i simboli <
potrebbero interferire con il markup della pagina. Un esempio di forzata:
<script type="text/javascript">
if(a<del || a>b){
foo();
}
</script>
Lorem ipsum dolor sit amet.
... potrebbe rendere brutto testo eliminato:
se (ab) {foo(); } Lorem ipsum dolor sit amet.
Esistono questi agenti utente obsoleti? Oh, certo che lo fanno. Nota che ho evitato accuratamente la parola "browser". La domanda non è chi sta usando Mosaic al giorno d'oggi. È che un tuo sito può essere letto da un parser basato su espressioni regolari basato su PHP male scritto.
Se ti interessa?Beh, probabilmente no :)
Questo comportamento non è ancora obsoleto. –
@Simon Richter - Sì, lo è. Il comportamento si verifica quando un browser non riconosce un elemento '' dal termine dello script (mid-JS-string). – Quentin
Credo che la sequenza di caratteri '
@DanielPryden, non importa in ogni caso, la specifica [html5] (http://dev.w3.org/html5/spec/syntax.html#comments) specifica che un commento non può contenere due segni meno negativi consecutivi ('- -'), che dovrebbe essere una grande bandiera rossa come un motivo * non * per usare un commento attorno a JavaScript. – zzzzBov
Commentando il codice JavaScript in questo modo si può anche impedire il contenuto dell'indicizzazione nei motori di ricerca e potrebbe essere auspicabile in alcuni casi.
Ad esempio, qualche tempo fa ho trovato un sacco di problemi relativi alla "pagina non trovata" negli strumenti per i webmaster di Google. Dopo una semplice analisi degli URL, ho eliminato che Google ottiene tutte le variabili del percorso dal mio codice JS (come "nome/001"), le ha unite con l'url corrente (mysite.info/staff) e ho provato a richiedere il risultato url. Senza successo, ovviamente.
Dopo aver inserito <!-- //-->
in alcuni blocchi JS, tutti i problemi relativi alla "pagina non trovata" sono scomparsi nel giro di pochi mesi.
Qualcuno può spiegarmi perché questa domanda ha già ottenuto 6 upvotes? È una domanda alla quale si può rispondere semplicemente digitando il titolo su Google, ergo: senza sforzo. – CodeCaster
@CodeCaster: l'unica cosa che dovrebbe avere importanza è che una domanda sia ben fatta e non sia un duplicato. A lungo termine, SO può essere un riferimento molto migliore di Google. (E questo non conta quanto sia pessimo Google ai simboli di indicizzazione e agli operatori bizzarri) – hugomg
Posso votare a favore di un commento? (Digitando ['JavaScript sono richiesti?'] (Http: // www.google.com/search?q=JavaScript+%3C!--+%2F%2F--%3E+are+required%3F) in Google è _non_ molto utile.) –