Ошибка выполнения JavaScript: "$ " не определено
Итак, классическая проблема, но с ужасным временем поиска фактической причины. Обычно, когда я вижу эту ошибку, это потому, что ссылка jQuery после кода, требующего ее, или обратно ссылку jQuery, или конфликт jQuery и т. д... до сих пор ни один из этих случаев не представляется таковым. К сожалению, поиск решения этой проблемы привел меня к публикации после публикации таких случаев. Я уверен, что моя проблема здесь так же проста, но больше часа охоты, все равно не повезло...
изменить: Дополнительная информация... Файл решения (который я воссоздал несколько раз, пытаясь понять это. Является шаблоном пустого приложения Магазина Windows JavaScript, и я делаю это в Visual studio. Единственные файлы ссылок-это библиотека Windows для javascript 1.0, я также попытался удалить ее для тестирования.
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8" />
<title>HTML5 Canvas Template</title>
<style>
/* styles here */
</style>
</head>
<body>
<canvas id="myCanvas" width="500" height="500">
<p>Canvas not supported.</p>
</canvas>
<script type="text/javascript" src="http://code.jquery.com/jquery-1.9.1.min.js"></script>
<script type="text/javascript">
$(document).ready(function() {
var canvas = $("#myCanvas").get(0);
var context = canvas.getContext("2d");
function renderContent()
{
// we'll do our drawing here...
}
renderContent();
});
</script>
</body>
</html>
6 ответов
Он утверждает, что JQuery
указанный URL не является правильным
попробуйте это:
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
в моем случае проблема заключалась в том, что я отображал свою страницу по https, но я пытался запросить файл JQuery по http, который заблокирован многими браузерами по соображениям безопасности.
мое исправление состояло в том, чтобы изменить это...
<script src="http://code.jquery.com/jquery-1.9.1.min.js"></script>
...для этого...
<script src="//code.jquery.com/jquery-1.9.1.min.js"></script>
это заставляет браузер загружать JQuery, используя тот же протокол (http или https), что и отображаемая страница.
У некоторых моих клиентов была эта проблема, потому что, по-видимому, они заблокировали загрузку Javascript с сторонних сайтов. Поэтому теперь я всегда использую следующий код для включения jQuery:
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<script>
window.jQuery ||
document.write('<script type="text/javascript" src="/js/jquery-1.9.1.min.js">\x3C/script>')
</script>
Это гарантирует, что даже если мой клиент блокирует загрузку файла Javascript из домена CDN, клиент все равно загружает файл с моего собственного сервера, который не блокируется браузером.
Я пробовал все перечисленное выше, и ничего не работает, пока я не положил эту строку
<script src="../scripts/jquery-2.2.3.min.js" type="text/javascript"></script>
в разделе head HTML-файл. Так вот как это выглядит:
<!DOCTYPE html>
<html>
<head>
<!-- jQuery Reference -->
<script src="../scripts/jquery-2.2.3.min.js" type="text/javascript"></script>
<meta charset="UTF-8" />
<meta http-equiv="X-UA-Compatible" content="IE=Edge" />
<title>some title</title>
</head>
<body>
...
и файл js находится на уровне ниже в папке "скрипты". Наконец, ошибка исчезла, и какое облегчение!
вариант Anover, в моем случае-я был вынужден использовать прокси. Так что - IE11--> InternetOptions --> соединения-->LANSettings-прокси-сервер--> UseProxyServer - должно быть проверено. Также проверьте awailability источника скрипта jQUery, мой рабочий вариант в VS2012 - - так же, как в верхнем примере
Я получал этот же код ошибки:
(ошибка: 'generateText' не определен)
...по коду
var bodyText=["The....now."]
я обнаружил в своем текстовом редакторе (Notepad++), при вводе многих строк текста непосредственно над переменной bodyText
, если бы я не попал return carriage
(enter==>WordWrap выключен) просто продолжал печатать без return carriage
и пусть редактор отрегулирует текст, который он работал?
должно быть в настройках Блокнот++??