2010-05-31 14 views
16

Qual è il punto di avvolgimento del codice javascript in <!-- -->?Wrapping javascript in <!-- -->

+4

C'era un punto oltre un decennio fa. Non ha senso ora, ed è davvero brutto farlo. – womp

+0

Molto tempo fa ... Haha ... Quando ho iniziato a scrivere codice JS, la gente ha raccomandato questo ... – Warty

+5

nascondere i tag CDATA attorno agli script nei commenti javascript è il modo aggiornato di scrivere codice stupido. – kennebec

risposta

24

Questo è uno dei miei fastidi ricorrenti. Questa è un'antica pratica di sviluppo per "proteggere" i browser più vecchi che non comprendevano i tag <script>. Senza di esso, potrebbero non riuscire a caricare la pagina o visualizzare il contenuto dello script come contenuto HTML.

Ma stiamo parlando di browser antichi qui. Gli unici browser che non hanno mai superato l'analisi di javascript erano browser del 1995. Questi browser semplicemente non sono in uso oggi. Questa pratica è solo un residuo dello sviluppo web dell'epoca degli anni '90.

Nessuno deve mai mettere più blocchi <!-- --> intorno al contenuto del tag di script.

Se vedi che gli sviluppatori lo stanno ancora facendo, correggili. Non analizzare il javascript non è stato un problema da Netscape 1.0 e this practice is actually considered harmful per i browser moderni.

+0

+1 il link che ci hai dato è davvero bello per novellino –

+0

Dovresti dare un'occhiata ad alcuni registri del server. Questo mese, ho avuto 27 visite da brosers che identificano come Netscape 0.91 e 17 come Netscape 0.6. Certo, la stringa agente può essere manipolata arbitrariamente, ma non riesco a capire perché qualcuno possa deliberatamente falsificare quelle versioni. –

+4

Non mi sembra significativo. Qual è la percentuale del tuo traffico complessivo? Stai davvero cercando di essere il * uno * sito web che funziona per Netscape 0.6? Dovrai fare molto di più che commentare i tuoi tag di script ... Scommetto che non sono affatto utenti legittimi, ma le persone che fanno ricerche o, come hai detto, usano le stringhe del browser fasulle. – womp

7

Inserendo il codice Javascript in un commento HTML, si impedisce ai browser meno recenti che non supportano Javascript di provare a trattare il codice come HTML.

+1

-1 ... ma quelli sono solo browser antichi. Vedi la risposta di Womp. Questo non ha meritato così tanti voti positivi ... – naiad

+0

La risposta di Womp è sicuramente quella corretta. Buone pratiche o no, la compatibilità con i vecchi browser è il motivo per cui le persone continuano a commentare i loro Javascript. –

+0

Sono d'accordo con Mark. C'è ancora una piccola popolazione che usa quei browser obsoleti> _> Perché? Dio sa. – Warty

0

Browser meno recenti che non capiscono Javascript vedrà solo un commento HTML.

1

Impedisce ai programmi utente che non sono a conoscenza del tag <script> o non lo gestiscono correttamente dal tentativo di analizzare o visualizzare il codice JavaScript come HTML.

È opinione comune che si debba viaggiare verso la fine degli anni '90 per trovare un browser che non è a conoscenza del tag <script>. Tuttavia, i miei siti sono spesso sfruttati da strumenti che implementano parser molto rudimentali (perché no? Puoi scrivere un grabber con 10 linee di PHP). E ho anche trovato il codice JavaScript visualizzato nel mezzo di un documento dopo aver incollato da un sito Web in un'app desktop che dovrebbe accettare l'HTML dagli appunti. Pertanto, l'escape di contenuti non HTML nei commenti HTML non è così sciocco come potrebbe sembrare.

0

A parte alcuni browser che non lo supportano, c'è un altro motivo: il validatore XHTML W3C (http://validator.w3.org) interpreta JavaScript che non si trova nei tag di commento come se fosse HTML. Quindi qualcosa come "i < 0" significherà che il tuo sito web non si convalida se non usi questi tag.

Problemi correlati