Pourquoi IE8 ne reconnaît-il pas type = "application / javascript" dans une balise de script?
J'ai développé une page HTML qui utilise jQuery et Ajax. J'ai eu les lignes suivantes dans mon <head>
tag:
<script language="javascript" type="application/javascript" src="script/jquery.js"></script>
<script language="javascript" type="application/javascript">
function someFunction() {
some code;
}
</script>
...
later - down in the body tag:
<a href="javascript:someFunction();">click here</a>
Il a parfaitement fonctionné dans FF et Chrome, mais a jeté un "Objet Attendu" dans IE8 dès que j'ai cliqué sur le lien. Même avec le Débogueur de Script sur, il ne peut pas atteindre la première ligne de la fonction.
J'ai essayé de commutation de mode IE7 ou IE8 mode de Compatibilité - en vain.
J'ai eu de la chance et trouvé une question par le biais de Google, où quelqu'un a suggéré de remplacer le type
dans le <script>
tag "text/javascript"
et maintenant il fonctionne dans tous les 3 navigateurs.
Ma question est: qu'ai-je fait de mal? Est "text/javascript"
mieux que "application/javascript"
, ou est-il mieux (== plus correct) de solution à mon problème?
source d'informationauteur Traveling Tech Guy
Vous devez vous connecter pour publier un commentaire.
"text/javascript" est le seul type qui est pris en charge par tous les trois navigateurs. Cependant, vous n'avez pas besoin de mettre un type. Le type d'attribut d'une balise de script par défaut est "text/javascript" si elle n'est pas spécifié autrement. Comment cela va affecter la validation, je ne suis pas sûr. Mais est-ce vraiment d'importance de toute façon?
Réponse Simple est que IE ne prend pas en charge le type de la valeur de l'application/javascript. Le RFC 4329 qui recommande il est évident qu'elle est intervenue après la libération de IE6, je suppose que les développeurs MS ne ressens pas le besoin de soutien, même le type MIME.