У меня есть довольно странная проблема с 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 для тестирования, то же ошибка)
Не уверен, что я понял? Вы создали сайт с абсолютными ссылками на ваш локальный хост во всем мире, и теперь вы добавили субдомен на свой локальный хост и отредактировали свой файл хоста Windows, чтобы все работало вместе, и вы включили jQuery на сайт, который делает похоже, не используют javascript, поскольку все, что вы разместили, это HTML, и по какой-то причине он не работает? – adeneo
они не полностью абсолютны: я использую флягу с jinja в качестве механизма шаблона, поэтому Flask генерирует эти URL-адреса для меня и вставляет их в шаблон, поэтому они являются абсолютными, но это не проблема, так как мне не нужно их менять если я переведу приложение на свой сервер. Я нахожусь в Linux, поэтому я отредактировал свой '/ etc/hosts', без него субдомен не будет разрешен должным образом. Сайт не использует jQuery сейчас, как обычно, я удалил все JS, чтобы отслеживать ошибку, и убедиться, что это причина jQuery, а не что-то еще (но хорошая точка, я минимизирую html). – dav1d
Что находится в твоем теле? Похоже, эта ошибка возникает при выполнении какого-то скрипта. У вас есть javascript в теле? Попробуйте удалить все в html, кроме раздела '
' со скриптами и стилями, и посмотреть, происходит ли ошибка. Такие ошибки возникают, когда jquery (хотя и некоторая обработка скриптов) пытается вызвать определенный метод (в вашем случае 'toLowerCase()') на объекте DOM, и этот объект отсутствует. –