172 votes

Avez-vous besoin text/javascript spécifié dans votre<script></script>

J'ai lu quelque part que vous n'avez plus besoin des choses comme type="text/javascript" et l'étrange CDATA et <!-- choses dans vos balises de script. Ainsi, au lieu de:

<script type="text/javascript">
//<![CDATA[
<!--

    //your script here

-->
//]]>
</script>

Vous faites juste:

<script>
    //your script here
</script>

Je ne me souviens plus où j'ai lu cette même si. C'est à partir de Google ou Yahoo ingénieur je crois, et ils ont spécifiquement mentionné les navigateurs qui ont demandé à ces constructions archaïques et pourquoi. Quelqu'un sait ce post du blog/article de cette a parlé, ou d'avoir une bonne ressource à parler à ce sujet?

152voto

bdukes Points 54833

Voir Crockford de l'écriture-up sur l' <script> balise, notamment:

Ne pas utiliser l' <!-- //--> hack avec des scripts. Il a été conçu pour empêcher les scripts d'apparaître dans le texte sur la première génération de navigateurs Netscape 1 et de la Mosaïque. Il n'a pas été nécessaire pendant de nombreuses années. <!-- //--> est censé signal un commentaire HTML. Les commentaires devraient être ignorées, pas compilé et exécuté. Aussi, les commentaires HTML sont pas à inclure --, donc un script qui décrémente a un message d'erreur HTML.

...

type="text/javascript"

Cet attribut est facultatif. Depuis Netscape 2, le langage de programmation par défaut dans tous les navigateurs a été JavaScript. En XHTML, cet attribut est obligatoire et inutile. En HTML, il est préférable de le laisser dehors. Le navigateur ne sait pas quoi faire.

49voto

Pointy Points 172438

C'est un Crockford recommandation. Je sais que j'ai vu elle a repris ailleurs (ppk peut-être?). La spec HTML5 n'en a pas besoin.

Curieusement, c'est devenu un peu au courant de l'utilisation de l'attribut "type" de mark <script> blocs que vous ne voulez être évaluée:

<script type='text/html-template'>
  <div> this is a template </div>
</script>

En donnant un bizarre non-JavaScript type, vous obtenez une façon de trucs crus du texte dans la page pour une utilisation par d'autres de code JavaScript (ce qui est probablement dans le bloc de script qui peut être évalué).

19voto

Rocket Hazmat Points 87407

HTML5 n’a pas besoin du `` (c’est la valeur par défaut).

``est seulement neeed pour les pages XHTML, si le script a tous les caractères HTML (comme ' ') dedans.

``doit seulement nécessaire pour les anciens navigateurs.

4voto

Mithun Points 9971

Le type d' attribut identifie le langage de script de code intégré dans un élément script ou référencé par l'attribut src de l'élément. Ceci est indiqué comme un type MIME; des exemples de types MIME pris en charge comprennent text/javascript, text/ecmascript, application/javascript, et de l'application/ecmascript.

Selon la Spécification HTML 4.01

Le type d'attribut spécifie le langage de script de l'élément contenu et remplace le langage de script par défaut. Le script la langue est spécifiée comme un type de contenu (par exemple, "text/javascript"). Les auteurs doivent fournir une valeur pour cet attribut. Il n'y a pas de valeur par défaut la valeur de cet attribut.

Mais en HTML5 text/javascript est le type par défaut, de sorte que vous pouvez l'omettre

Le type d'attribut donne le langage de script ou le format de l' les données. Si l'attribut est présent, sa valeur doit être un MIME valide type. Le paramètre charset ne doit pas être spécifié. La valeur par défaut, qui est utilisé si l'attribut est absent, est "text/javascript".

2voto

FatherStorm Points 5332

On peut penser à cet article ici avec une dépendance que les scripts par défaut text/JavaScript en HTML5 automatiquement, tandis que les navigateurs non-HTML5 attendent toujours que vous définissez le type spécifiquement spec-wise, même s’ils seront presque toujours suppose de toute façon que text/javascript.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X