Почему IE8 не распознает type= "application / javascript" в теге скрипта?

Я разработал HTML-страницу, которая использует jQuery и Ajax. У меня были следующие строки в моем <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>

он отлично работал в FF и Chrome, но бросил "ожидаемый объект" в IE8, как только я нажал ссылку. Даже при включенном отладчике скрипта он не достигнет первой строки функции.
я попытался переключиться в режим IE7 или режим совместимости IE8 - безрезультатно.

Мне повезло и нашел вопрос через Google, где кто-то предложил изменение type на <script> tag to "text/javascript" и теперь он работает во всех 3 браузерах.

Мой вопрос: что я сделал не так? Is "text/javascript" лучше, чем "application/javascript", или есть лучше (== более правильное) решение моей проблемы?

2 ответов


"text / javascript" - единственный тип, который поддерживается всеми тремя браузерами. Однако на самом деле вам не нужно вводить тип. Атрибут type тега скрипта по умолчанию будет иметь значение "text / javascript", если не указано иное. Как это повлияет на проверку, я не уверен. Но разве это имеет значение?


простой ответ заключается в том, что IE не поддерживает значение типа application/javascript. RFC 4329, который рекомендует его, очевидно, пришел после выпуска IE6, я думаю, разработчики MS не чувствовали необходимости даже поддерживать тип MIME.