44 votes

Sans texte, type = "text / javascript" language = "javascript"

La plupart des balises de script que j'ai créer, je l'ai toujours inclure type="text/javascript" language="javascript" dans la balise. Mon patron ne veut cependant pas. Parfois, il exclut à la fois, parfois juste a language=javascript même sans les guillemets

Maintenant, nous n'avons pas eu un problème dans tous les principaux navigateurs avec ses balises. Je parle de toutes les versions d'IE, FF, Safari et Chrome.

Personnellement, je pense que c'est la paresse et de la juste totalement abusive et de mauvaise pratique de codage, de laisser des trucs comme ça, même si elle fonctionne sans elle.

Quelqu'un sait si les deux devraient être inclus ou tout simplement un ou est-il ok pour laisser les deux dans ASP.NET?

72voto

Nick Craver Points 313913

Je suppose que ce doit être mise à jour maintenant que le paysage a un peu changé:

Pour un doctype HTML5, il n'est plus nécessaire. Par exemple: nous laisser des pages ici à Débordement de Pile. Si vous utilisez un doctype HTML5 alors c'est complètement optionnel et vaut par défaut text/javascript, de sorte que vous êtes tout à fait bien en le laissant éteint dans tous les cours (ou très vieux) du navigateur. De façon réaliste, cela était également vrai même dans le HTML4 bien que pas strictement HTML valide.

Pour un HTML4 doctype (valide), vous en avez besoin. Pour un navigateur pour la fonction, il n'est pas strictement nécessaire et se comporte très bien (cela a été vrai à l'époque de Netscape 2) - mais il ne sera pas valide HTML. Si vous avez un HTML4 doctype, alors le garder et être valide cause, hey, pourquoi pas?


Réponse Originale À Cette Question:

Je voudrais utiliser type="text/javascript" à être en sécurité dans tous les navigateurs actuels, pourquoi laisser l'ambiguïté là-bas pour enregistrer 21 caractères? language="" , cependant, est obsolète, j'avais laisser.

Aussi, le validateur va jeter une erreur, mais il sera probablement travailler à l'intérieur du navigateur (sauf si vous avez affaire à quelque chose de très vieux).

15voto

Justin Ethier Points 57486

Selon les spécifications w3c , type est requis. Donc ... même si la plupart des navigateurs vont être suffisamment robustes pour fonctionner sans que type soit correctement spécifié, il est judicieux de le définir explicitement à text/javascript .

14voto

Jacob Points 801

La recommandation du W3C pour HTML5 indique que vous n'avez pas besoin d'inclure

type="text/javascript"

Le navigateur suppose qu’il s’agit de texte / javascript, sauf indication contraire indiquée dans un type différent.

http://dev.w3.org/html5/spec/Overview.html#the-script-block-s-type

11voto

brainjam Points 11431

Douglas Crockford, l'une des grandes autorités et les enseignants de Javascript, a ceci à dire:

language="javascript"

Cet attribut est obsolète. Il a été utilisé pour sélectionner d'autres émissions langues et versions spécifiques de Le JavaScript. Vous n'en avez pas besoin. Ne pas l'utiliser.

type="text/javascript"

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

Votre patron peut-être le faire pour le "droit" ou les "mauvaises" raisons (c'est à dire qu'il peut être Crockford conseils, ou il peut juste être paresseux), mais je ne pense pas que vous pouvez nécessairement un jugement. Si le reste de son code HTML et le JS est bâclée, c'est autre chose. Je me risquerais que le contenu de la balise de script qui pourrait être plus d'une chose religieuse comme la taille des tabulations ou d'un croisillon de placement.

Edit: @coffeeaddict a souligné que de ne pas mettre la bonne attributs dans la balise bousille ses compilations. Je dirais que l'emporte sur toute considération de savoir si les attributs sont strictement exact ou nécessaire, parce que les projets doivent toujours construire proprement sans erreurs ou des avertissements. En va de même pour les validateurs, etc, s'ils font partie du projet de norme.

8voto

Dustin Points 1268

Si le document est analysé comme HTML5, la langue par défaut est le JavaScript, et aucun attribut de quelque sorte que ce soit nécessaire (pour référence future, il n'y a pas d'attribut de langue en HTML5).

Si vous êtes de restauration à HTML 4.x ou XHTML 1.x, le langage de script par défaut est censé être déterminée à partir de la valeur de la Content-Script-Type d'en-tête, si présent localement dans une MÉTA/balise meta (haute priorité) ou comme un en-tête HTTP (priorité faible). L'attribut type est toujours exigé par HTML 4.x, même si le Content-Script-Type de l'en-tête est présent localement (ou autre) depuis le langage de script par défaut n'affecte la façon dont les valeurs des attributs comme le onload, onclick, etc. sont traitées. L'attribut type avec "text/javascript" comme la valeur doit être utilisée dans le cas de JavaScript au lieu de l'attribut de langue, sauf si vous êtes à la restauration de vieux navigateurs (par exemple, IE4, NN4, peut-être IE5/Mac? rappelez vous qu'il y avait une version de IE6 pour Windows 98, donc la langue de l'attribut est définitivement périmé assez).

Un dernier bit de l'information: techniquement parlant, application/x-javascript est la valeur correcte pour le JavaScript (sauf si elle est devenue application/javascript sans que je sache), mais malheureusement text/javascript est celui avec le plus grand soutien en termes de compatibilité inter-navigateur.

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