$ (document) .ready не работает в IE - PullRequest
       59

$ (document) .ready не работает в IE

0 голосов
/ 13 октября 2009

На моей странице есть две ссылки, зарегистрироваться и войти.

Важным сейчас является регистрация. Когда я нажимаю на него, он загружает файл .tpl, используя функцию загрузки jquery. В этот файл tpl я включаю новый js-файл с <script> конечно, и он отлично работает в safari, ff, opera и chrome, но, конечно, почему он должен работать в IE?

Итак, мой вопрос: что мне делать, чтобы он работал в IE? Я думаю, если я добавлю js в файл .tpl, который решит мою проблему, но если есть лучшее решение, я бы хотел услышать это. Нет, это не помогло, поэтому я думаю, что нет решения: D

Теперь я попробовал это с простым предупреждением, оно отлично работало.

Моя проблема изменилась. Если в файле JS есть $(document).ready, то IE «игнорирует» весь скрипт, но если его нет, он отлично работает. Дело в том, что мне нужен этот документ готов. : D

Спасибо.

Ответы [ 4 ]

3 голосов
/ 13 октября 2009

Если скрипт «игнорируется», если готов $ (документ), то в этом блоке скрипта может быть ошибка, и ваш IE настроен на остановку запуска скриптов по ошибке.

Постарайтесь немного упростить вашу проблему, чтобы попытаться определить ее. Например, скопируйте следующий код в новый HTML-файл и попробуйте его (ПРИМЕЧАНИЕ: вам нужно изменить путь src на файл jquery.js.)

<html>
<head>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript">
$(document).ready(function() {
    alert('test');
}
</script>
</head>
<body>
</body>
</html>

Работает ли вышеуказанное в IE для вас или оно также игнорируется (опять же, после обновления пути к файлу jquery.js)?

Если это работает, но не в вашем сценарии, проверьте исходный код своей страницы в IE, чтобы узнать, как все загружается. Единственный раз, когда $ (document) .ready () выдает ошибку, это когда файл jquery.js не загружен до этого или есть конфликт с функцией $ () ... в этом случае вы будете нужна функция noConflict ().

3 голосов
/ 13 октября 2009

Убедитесь, что тег сценария находится не в этой форме:

<script ... />

IE принимает только:

<script>...</script>
0 голосов
/ 13 октября 2009

Вы уверены, что ваш загруженный javascript правильно работает в IE. Возможно, он имеет причуду javascript, которая выдает ошибку и создает видимость, будто она не загружается?

Чтобы проверить это, не динамически включайте javascript (включите его в страницу или аналогичный) и установите точку останова в коде сценария и выполните шаг через, чтобы убедиться, что он выполняется полностью. Firebug был бы отличным инструментом для этого.

Я понимаю, что это цепляется за соломинку, но, возможно, попробуем?

0 голосов
/ 13 октября 2009

IE считает внедрение тегов скрипта проблемой безопасности. Измените тег сценария на:

document.write("<scri" + "pt src=...></scri" + "pt>");
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...