2012-05-05 3 views
1

У меня есть довольно странная проблема с JQuery:JQuery TypeError «не удается вызвать метод„toLowerCase“неопределенной» (функция uaMatch)

У меня есть веб-сайт (с колба) по адресу: http://localhost:5000/, она прекрасно работает. Теперь я настроил субдомен, отредактировал мой /etc/hosts (я добавил 127.0.0.1 fonts.localhost), субдомен использует тот же самый html (даже меньше), но при загрузке сайта jQuery дает мне эту ошибку: Uncaught TypeError: Cannot call method 'toLowerCase' of undefined. Он исходит из функции uaMatch в строке 884 файла несжатого jQuery 1.7.2. Аргумент, переданный функции, должен быть неопределенным, uaMatch называется только одно время (строка 925) с userAgent, userAgent назначается по строке 75: userAgent = navigator.userAgent. navigator.userAgent - "Mozilla/5.0 (X11; Linux i686) AppleWebKit/535.19 (KHTML, like Gecko) Chrome/18.0.1025.168 Safari/535.19" (в соответствии с консолью отладки).

Так что я действительно не понимаю, почему я получаю эту ошибку, которая возникает только на субдомене. Важный html fonts.localhost:5000.

<!doctype html> 
<title>test</title> 
<meta charset=utf-8> 
<link rel=stylesheet type=text/css href="http://localhost:5000/static/style.css"> 
<link rel=stylesheet type=text/css href="http://localhost:5000/static/bootstrap.min.css"> 
<script type=text/javascript src="http://localhost:5000/static/jquery-1.7.2.min.js"></script> 
<body> 
    … 
</body> 

EDIT: Он также не работает с JQuery несжатый (я включил файлы JQuery размещенных на Google для тестирования, то же ошибка)

+0

Не уверен, что я понял? Вы создали сайт с абсолютными ссылками на ваш локальный хост во всем мире, и теперь вы добавили субдомен на свой локальный хост и отредактировали свой файл хоста Windows, чтобы все работало вместе, и вы включили jQuery на сайт, который делает похоже, не используют javascript, поскольку все, что вы разместили, это HTML, и по какой-то причине он не работает? – adeneo

+0

они не полностью абсолютны: я использую флягу с jinja в качестве механизма шаблона, поэтому Flask генерирует эти URL-адреса для меня и вставляет их в шаблон, поэтому они являются абсолютными, но это не проблема, так как мне не нужно их менять если я переведу приложение на свой сервер. Я нахожусь в Linux, поэтому я отредактировал свой '/ etc/hosts', без него субдомен не будет разрешен должным образом. Сайт не использует jQuery сейчас, как обычно, я удалил все JS, чтобы отслеживать ошибку, и убедиться, что это причина jQuery, а не что-то еще (но хорошая точка, я минимизирую html). – dav1d

+0

Что находится в твоем теле? Похоже, эта ошибка возникает при выполнении какого-то скрипта. У вас есть javascript в теле? Попробуйте удалить все в html, кроме раздела '' со скриптами и стилями, и посмотреть, происходит ли ошибка. Такие ошибки возникают, когда jquery (хотя и некоторая обработка скриптов) пытается вызвать определенный метод (в вашем случае 'toLowerCase()') на объекте DOM, и этот объект отсутствует. –

ответ

0

О, дорогой, я, наконец, нашел ошибку , похоже, что jQuery не может обрабатывать домены без TLD, я изменил запись хостов с 127.0.0.1 fonts.localhost на 127.0.0.1 fonts.localhost.localdomain, после этого сработал jQuery. Стоит ли говорить об ошибке?

Смежные вопросы