Подтвердить что ты не робот

IE10 и jQuery: SCRIPT5009: "$" - undefined

Я столкнулся с этой действительно раздражающей проблемой, она появляется в IE10, как в IE9. С учетом этого HTML:

<head>
    <title>Any Consult</title>
    <meta charset="utf-8" />
    <link rel="stylesheet" type="text/css" href="styles.css" />
    <!--[if lte IE 9]>
        <script src="scripts/IE9.js"></script>
    <![endif]-->
    <script type="text/javascript" src="scripts/jquery.js"></script>
    <script type="text/javascript" src="scripts/scripts.js"></script>
</head>

Это (scripts.js) отлично работает в FF и Chrome, но IE10 выдает ошибку SCRIPT5009.

scripts.js похож на (простой, но проверенный пример):

$(document).ready(function() {
   alert('Hello');
});

IE10 не загружает файл jQuery, и я пробовал почти все. Я изменил и уменьшил имя файла, я пощадил

<!--[if lte IE 9]>...

я попробовал

src="http://ajax.aspnetcdn.com/ajax/jQuery/jquery-1.10.0.min.js"

но ничего не произошло. Поскольку это новая версия этого вопроса, я бы хотел указать:

  • как я могу назвать jQuery файл для IE (10)?
  • Где я должен помещать теги script в HTML-заголовок?

Спасибо большое!

EDIT: Здесь также предлагается HTML-версия, которая тоже не работает:

<script type="text/javascript" src="scripts/jquery.js"></script>
<script type="text/javascript" src="scripts/scripts.js"></script>
<script type="text/javascript" src="scripts/clocks.js"></script>
<!--[if lte IE 9]>
    <script src="scripts/IE9.js"></script>
<![endif]-->
<!--[if IE]><script type="text/javascript" src="scripts/excanvas.js"></script><![endif]-->

IE9.js - это браузер polyfill.

И вот мой скриншот ( "ist undefiniert" означает "is undefined", "Die Webseite reagiert nicht" означает "страница опущена", "Debugger beenden" означает "остановить отладку", $('. aLang ') является классом в моем HTML.

Screenshot IE10 Bug Report

4b9b3361

Ответ 1

У меня была эта проблема с IE и выяснилось, что javascript файл jQuery был поврежден в средстве разработки IE. Это было вызвано в моем случае сжатием HTTP GZIP, выполняемым сервером, но IE не распаковывал файл. Я думаю, что если вы отключите статическое HTTP-сжатие или исключите приложение /x -javascript из того, что делает компрессию (Mine был сделан FluorineFX для всех файлов более 10Kb), он должен работать нормально, как только вы очистили кеш браузера, чтобы избавиться сжатого файла javascript.

Ответ 2

Поместите условную script после библиотеку jQuery:

<script type="text/javascript" src="scripts/jquery.js"></script>
<!--[if lte IE 9]>
<script src="scripts/IE9.js"></script>
<![endif]-->