2013-03-04 7 views
11

Na przykład here: kod wygląda tak:Dlaczego próbki jQuery często pomijają typ skryptu?

<html lang="en"> 
    <head> 
    <!-- whatever --> 
    <script> 
     $(function() { 
     $("#datepicker").datepicker(); 
     }); 
    </script> 
    </head> 
<!-- whatever --> 

Zauważ, że <script> powinien zawarte type atrybut (być może ustawiony "text/javascript"), ale to nie jest obecny tutaj.

To nie jest jedyny przykład, jaki widziałem. Taki kod sprawia, że ​​edytor Visual Studio jest nieszczęśliwy - podkreśla on <script> i mówi, że powinien on mieć atrybut type. To także sprawia, że ​​ciekawi mnie wielki czas.

Często pomija się type? Co się stanie, jeśli dodaję type="text/javascript" - czy jQuery pęknie czy coś?

+0

czy próbowałeś dodać typ? – j0hnstew

+3

większość przeglądarek domyślnie jest javascript, ale TY zawsze powinieneś określać typ. JS może nie zawsze być domyślnym. Jest to język du-jour zgodny z hasłem "buzzword", ale jutro inne języki mogą przejąć kontrolę i stać się standardem defacto. –

+0

@stewbydoo Pytanie brzmi: dlaczego, dlatego –

Odpowiedz

15

To prawdopodobnie dlatego, że HTML5 does not require a type attribute on <script> elements (domyślnie jest to "text/javascript").

+4

"text/javascript" jest domyślnym typem przez wiele, wiele lat. Nie tylko w HTML5. – dfsq

+4

@dfsq, cóż, atrybut 'type' [wymagany w HTML4] (http://www.w3.org/TR/REC-html40/interact/scripts.html#h-18.2.1), więc zrobiłeś musicie to wyraźnie określić. –

+2

Zgadza się. Lepiej powiedzieć, że przeglądarka poprawnie zastosuje javascript jako język skryptowy, nawet jeśli nie jest określony. Jeśli jednak zostanie pominięty, kod może być nieprawidłowy, jeśli nie jest to typ dokumentu HTML5. – dfsq

2

Znacznik type jest opcjonalne. Domyślnymi językami programowania we wszystkich przeglądarkach jest JavaScript, więc jest to wartość domyślna. W XHTML ten atrybut jest wymagany i niepotrzebny. W HTML lepiej go opuścić.

Przeglądarki będą wiedzieć, że jest to Javascript.

1

Visual Studio może być nieszczęśliwy, ponieważ jest leniwy i potrzebuje do analizowania kodu wewnątrz script tagu i intellisense musi działać jak dobrze, więc lepiej, gdy przewidują, że type bezpośrednio zamiast pozwalać VS odgadnąć, jakiego języka używasz, tj. text/vbscript.

Możesz napisać stronę html z zaawansowanym skryptem vb w Visual Studio. http://www.w3schools.com/vbscript/default.asp.

Powiązane problemy