Проблема с jQuery в Internet Explorer 8 - PullRequest
78 голосов
/ 18 мая 2009

Я пытаюсь заставить мои функции jQuery работать на IE8. Я загружаю библиотеку с серверов Google (http://ajax.googleapis.com/ajax/libs/jquery/1.3/jquery.min.js).

$(function(){}) никогда не вызывается. Вместо этого я получаю ошибку Object expected. Я открыл разработчика и запустил typeof $ в консоли, и он появился как undefined.

Я пытался зайти на другие сайты, которые, как мне известно, используют jQuery (jquery.com), и все они работают, есть что-то, чего мне здесь не хватает?

Ответы [ 20 ]

42 голосов
/ 06 мая 2010

Напишите «var» перед переменными, когда вы их определяете. IE8 умирает, когда нет "var".

39 голосов
/ 15 декабря 2010

Исправление:

Проверьте тэг, включающий тег, использует ли он

type="application/javascript" src="/path/to/jquery" 

изменить на

type="text/javascript" src="/path/to/jquery" 
38 голосов
/ 15 октября 2009

У меня была похожая проблема. Все работало в IE6, Firefox и IE8, работающих в режиме совместимости IE7; но не в "нормальном" IE8. Мое решение состояло в том, чтобы поместить этот код в заголовок

<meta http-equiv="X-UA-Compatible" content="IE=EmulateIE7" /> 

Что касается того, почему jquery не работает в IE8, я неясен.

12 голосов
/ 11 июня 2010

Решение заключается в обновлении до последней версии jQuery. У меня была точно такая же проблема, и я обновился до 1.4.2, и в IE8 все снова работает нормально.

Кажется, что он полностью обратно совместим со всеми вещами jQuery 1.3.2, которые я делал, так что никаких нареканий здесь!

10 голосов
/ 19 ноября 2010

У меня была эта проблема, и я безуспешно пытался найти решения, упомянутые здесь.

В конце концов, я понял, что я связывался с версией скрипта Google CDN, используя http URL, тогда как страница, в которую вставлялся скрипт, была https page.

Это заставило IE не загружать jquery (он запрашивает у пользователя, хотят ли они загружать только защищенный контент). Изменение URL-адреса Google CDN для использования схемы https устранило проблему для меня.

8 голосов
/ 28 августа 2014

Некоторые люди, спотыкающиеся в этом посте, могут получить эту проблему с jquery и IE8, потому что они используют> = jQuery v2. Используйте этот код:

<!--[if lt IE 9]>
    <script src="jquery-1.9.0.js"></script>
<![endif]-->
<!--[if gte IE 9]><!-->
    <script src="jquery-2.0.0.js"></script>
<!--<![endif]-->
6 голосов
/ 18 мая 2009

jQuery не загружается, это, скорее всего, не относится к IE8. Проверьте путь к вашему jQuery include. заявление. Или еще лучше, используйте следующее для CDN:

<script type="text/javascript" src="//ajax.googleapis.com/ajax/libs/jquery/1.3.1/jquery.min.js">
</script>
6 голосов
/ 26 апреля 2011

Если вы используете HTTPS на своем сайте, вам нужно будет вместо этого загрузить библиотеку jQuery с сервера Googles https. Попробуй это: https://ajax.googleapis.com/ajax/libs/jquery/1.3/jquery.min.js (или последний https://ajax.googleapis.com/ajax/libs/jquery/1.5.1/jquery.min.js)

5 голосов
/ 07 декабря 2010

Я исправлял шаблон, созданный кем-то другим, который забыл включить тип документа.

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

Если вы не объявите, doctype IE8 делает странные вещи в режиме Quirks.

4 голосов
/ 17 августа 2011

Ошибка Object expected возникает из-за того, что Jquery не загружен. Это происходит из-за безопасности браузера (обычно IE), которая не позволяет вам выполнять внешний исходный код javascript. Вы можете исправить эту проблему следующим образом:

  • 1: изменение уровня безопасности браузера, чтобы разрешить выполнение внешнего кода JavaScript. Вы можете найти как это сделать здесь

OR

  • 2: скопируйте и вставьте исходный код jquery на свою веб-страницу, чтобы он не рассматривался как внешний скрипт.

Я предпочитаю первое решение.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...