Почему код JQuery не работает, если я использую локальный файл jquery.js? - PullRequest
5 голосов
/ 08 мая 2011

Скажем, это моя страница, например ..

<!doctype html>
<html>
  <head>
  </head>
  <body>
    <script src="jquery.js"></script>
    <script type="text/javascript">
      $(document).ready(function(){
      });
    </script>
    <div id="div1"></div>
  </body>
</html>

Как видите, я использую локальный файл jQuery (jquery.js), поэтому каждый раз, когда я пишу код jQuery, он не работает, знаячто обе мои страницы и jquery.js на одном уровне ..

Но когда я использую файл jQuery онлайн, как это, например,

<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.5.2/jquery.min.js"></script>

все работает нормально ..

Также я попытался вставить <script></script> в <head>, но ничего не работает

Ps Я скачал тот же файл, который использую онлайн, и использую его локально.

Ответы [ 4 ]

10 голосов
/ 08 мая 2011

Это проблема кодирования. Ваш файл page.html находится в формате UTF-16 (хотя он содержит ошибочный тег meta, говорящий о том, что он использует UTF-8), но файл jquery.js отсутствует (он также есть в ASCII, Windows-1252 / ISO- 8859-1, или UTF-8 - на самом деле не имеет значения, к каким персонажам они имеют общее).

Я предлагаю исправить кодировку page.html (делая это на самом деле UTF-8). Это, вероятно, прояснит это. Но если нет, или если вы действительно хотите UTF-16 (например, вы делаете страницу в основном не-западным шрифтом), вы можете использовать атрибут charset в элементе script, чтобы сообщить браузеру, чего ожидать при извлечении скрипта.

Вот как я туда попал: когда я захожу на ссылку, которую вы разместили , я получаю ошибку "недопустимый токен" в jquery.js в консоли (в Chrome и в Firebug) и в jquery.js Содержимое файла искажено, в основном в восточно-азиатском наборе символов. Если я запрашиваю ресурс напрямую, у меня нет этой проблемы. Это сразу заставило меня задуматься о «проблеме кодирования» и взглянуть на page.html. Быстрый взгляд показал, что это в UTF-16. Дважды проверил, что файл jquery.js также отсутствует в UTF-16 (возможно, хотя я бы никогда не кодировал JavaScript таким образом, это было бы очень расточительно), и обнаружил, что он находится в ASCII-совместимой кодировке (например, , не UTF-16).

Если вы не уверены на 100%, что вы понимаете, что я говорю о page.html в UTF-16, но jquery.js в UTF-8 или аналогичном, я бы рекомендовал прочитать Абсолютный минимум каждый разработчик программного обеспечения Абсолютно, положительно должен знать о Юникоде и наборах символов (без извинений! * ) Джоэля Спольски, а также различные часто задаваемые вопросы по unicode.org, в частности основной и тот, кто обсуждает различные UTF и спецификацию .

2 голосов
/ 08 мая 2011

Браузер не должен заботиться о том, является ли файл локальным [локальным по отношению к веб-серверу , предположительно ...?].

Что-то не так с копией файла, который у вас естьна местном уровне.Убедитесь, что путь указан правильно, и используйте Firebug, чтобы увидеть, что произошло с его загрузкой.


Редактировать Для вашей demo_local моя установка Firebug жалуется на наличие иностранных символов в jquery.JS файл.Когда я смотрю на вкладку «Сценарий», она отображается в Юникоде, но используется как ASCII.

0 голосов
/ 08 мая 2011

sam

В этом jquery есть какой-то странный код.

похоже, что jquery.js локально неверен

, пожалуйста, загрузите его отсюда

http://code.jquery.com/jquery-1.6.min.js

Можете ли вы попробовать следующий

стандартный тип документа

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

<html lang="en">

и изменить скрипт на

<script type="text/javascript">

</script>
0 голосов
/ 08 мая 2011

Я вижу, что вы используете Dropbox для размещения ваших файлов, что автоматически означает, что вы не можете делать локальные ссылки на свои файлы. Попробуйте включить полную ссылку в Dropbox и посмотрите, работает ли она

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