2010-12-12 6 views

Odpowiedz

22

To już nie jest konieczne. Służyło to jedynie do sortowania wstecznego sortowania - kiedy skrypty po raz pierwszy zostały wstawione na statyczne strony HTML, większość przeglądarek nie mogła ich obsługiwać. Bez komentarzy zignorowaliby semantykę znacznika <script> (której nie rozumieli), a następnie emitowaliby źródło skryptu na stronę.

Jak na ironię, rozwiązaniem było samo włamanie - AFAIK, żadna część specyfikacji HTML nie mówi, że tagi skryptów powinny być analizowane w komentarzach. Fakt, że wszystkie przeglądarki tego dokonały, wydaje się być raczej zbiegiem okoliczności niż cokolwiek innego. Oczywiście w XHTML komentarze są komentarzami, więc w pełni zgodna przeglądarka będzie miała mieć, aby zignorować twoje skrypty.

Zasadniczo, jeśli nie chcesz naprawdę wspierać, naprawdę starych przeglądarek (kosztem zerwania kilku nowych), nie trzeba już tego robić.

+7

Pamiętam lewę jako '// ', tj. Piszesz znaczniki komentarza HTML jako komentarze JavaScript, aby zostały one zignorowane przez silnik skryptu w ten sposób. Oczywiście oznacza to, że stare przeglądarki mogą emitować '//' z otwartego znacznika komentarza. – Rup

+0

+1 za komentarz. Nie było intencją dołączanie samych znaczników skryptów do komentarzy. – GolezTrol

8

Naprawdę stare przeglądarki, które nie zrozumiały tagu <script>, mogą założyć, że był to znacznik formatowania, którego nie rozumiał. Uprzejmie zawiodą, powodując wstawienie zawartości znacznika (skryptu) na stronie.

Po skomentowaniu skryptu przez HTML przeglądarki te zignorują treść, a nie ją renderują.

W praktyce wątpię, że którakolwiek z tych przeglądarek jest nadal używana i że prawdopodobnie można uciec bez komentarzy w dzisiejszych czasach.

7

To jest dla niektórych starych przeglądarek, które były używane w ubiegłym wieku.

Już nie potrzebujesz ich więcej dzisiaj, ale używanie CDATA jest uważane za dobrą praktykę, jeśli piszesz XHTML.

+1

Uważa się nawet, że lepiej jest umieścić kod javascript w osobnych plikach. – GolezTrol

+4

+1 dla frazy "ostatni wiek". :) –

+1

"w użyciu w ubiegłym stuleciu" lol :) – Green

0

Wciąż problem stanowi obecnie przetwarzanie strony przez analizator składni sanitacji, który polega tylko na przepisaniu znacznika <script> na <xscriptx>. Jeśli pozostawisz w tagu komentarza, to jeśli tag skryptowy zostanie oczyszczony, to przynajmniej twój javascript będzie nadal ukryty przed użytkownikiem przez tagi komentarzy. Jeśli pominiesz komentarze, kod będzie widoczny.

Przykładem parsera sanitacji jest Google Translate, Google Cache lub Proxomitron.

+0

Interesujące. Kieruję się twoim rozumowaniem, ale sprawdzanie Tłumacz Google i Google Cache przynajmniej, nie widzę żadnego takiego problemu. – J0e3gan