web-dev-qa-db-ja.com

JavaScriptランタイムエラー: '$'は未定義です

とても古典的な問題ですが、実際の原因を見つけるのに恐ろしい時間があります。通常、このエラーが表示されるのは、jQuery参照がそれを必要とするコードの後、jQueryリンク、またはjQueryの競合などであるためです。残念ながら、この問題の解決策を模索しているため、このようなケースの投稿後に投稿することになりました。ここでの私の問題も同様に単純なものだと思いますが、1時間以上狩りをしますが、それでも運はありません...

編集:追加情報...ソリューションファイル(これを把握しようとして何度も再作成しました。JavaScriptWindowsストアブランクアプリテンプレートであり、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>
11
RualStorge

JQuery参照URLが正しくないという状態です

これを試して:

<script src="//ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
13
coder

上記のすべてを試してみましたが、この文字列を置くまで何も動作しないようです

<script src="../scripts/jquery-2.2.3.min.js" type="text/javascript"></script>

hTMLファイルのheadセクション。そのため、次のようになります。

<!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ファイルは、フォルダー 'scripts'の下のレベルにあります。最後に、エラーはなくなりました。

2

私の場合、問題はhttpsでページをレンダリングしていたが、httpでJQueryファイルを要求しようとしていたことでした。これは、セキュリティ上の理由で多くのブラウザーでブロックされています。

私の修正はこれを変更することでした...

<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>

これにより、ブラウザーはレンダリングされるページと同じプロトコル(httpまたはhttps)を使用してJQueryをダウンロードします。

1
Chris Gillum

私のクライアントの中には、サードパーティのサイトからの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>

これにより、クライアントがCDNドメインからのJavascriptファイルのロードをブロックした場合でも、クライアントはブラウザによってブロックされていない自分のサーバーからファイルをダウンロードします。

1
Pascal Klein

私の場合、別のバリエーション-私はプロキシを使用することを余儀なくされました。 -IE11-> InternetOptions-> Connections-> LANSettings-Proxy Server-> UseProxyServer-チェックする必要があります。また、jQUeryスクリプトソースの可用性を確認します。VS2012で作業したバリアント--上の例のように

0
user3801205