Ошибка выполнения 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 и пусть редактор отрегулирует текст, который он работал?

должно быть в настройках Блокнот++??