Почему 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.