22

ローカルファイルシステム設定で作成されたASP.netプロジェクトに取り組んでいます。私はMVCとJqueryを使用しています。アプリケーションをデバッグモード、つまりASP.net開発サーバーで実行すると、Jqueryは正常に機能します。IIS 7でアプリケーションをホストしようとしています。ホストモードでは、Jqueryが認識されず、スクリプトエラー「Jqueryisundefined」が表示されます。スクリプトファイルの場所は、どちらのモードでも変更されません。誰もが理由とこれを解決する方法が何であるかについての手がかりを得ることができますか?

私のコードは次のようになります。

<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<script src="../../Scripts/MicrosoftAjax.debug.js" type="text/javascript"></script>

<script src="../../Scripts/MicrosoftMvcAjax.debug.js" type="text/javascript"></script>

<script src="../../Scripts/jquery-1.2.6.js" type="text/javascript"></script>

<!-- YUI Styles -->
<link href="../../Content/reset.css" rel="stylesheet" type="text/css" />
<link href="../../Content/fonts.css" rel="stylesheet" type="text/css" />
<link href="../../Content/grids.css" rel="stylesheet" type="text/css" />
<!-- /YUI Styles -->
<link href="../../Content/knowledgebase.css" rel="stylesheet" type="text/css" />

<script type="text/javascript">
    //this hides the javascript warning if javascript is enabled
    (function($) {
        $(document).ready(function() {
            $('#jswarning').hide();
        });
    })(jQuery);
</script>

<asp:ContentPlaceHolder ID="ScriptContent" runat="server" />

...。

4

19 に答える 19

41

0 皆さんが問題の解決策を見つけたかどうかはわかりません。私は同じ問題に直面していて、使用しているプラ​​グインで「jQuery is undefined」エラーが発生する理由を理解するために夢中になりました。インターネットから入手したすべてのソリューションを試しましたが、まったくうまくいきませんでした。

しかし、突然何かが頭に浮かびました。スクリプト ファイルが適切である可能性があります。そのため、jquery 参照を最初の位置に移動すると、すべてが魅力的に機能し始めます。

皆さん、jquery でプラグインを使用している場合は、それらのフィールドへの参照を設定する次の順序を使用していることを確認してください。

  1. jquery ライブラリへの参照
  2. 後続の他のプラグイン (依存) ライブラリへの参照など...

例えば:

  1. "script src="js/jquery-1.3.2.min.js" type="text/javascript"...
  2. "script src="js/jqDnR.min.js" type="text/javascript"...
  3. "script src="js/jquery.jqpopup.min.js" type="text/javascript"...
  4. "script src="js/jquery.bgiframe.min.js" type="text/javascript"...

jquery 参照を最初に配置し、次に後続のライブラリーを配置する必要があることを常に確認してください。

特にMasterPagesを使用する場合、これで問題が解決することを願っています。MasterPages を使用しない場合にどの順序を使用しても機能するのは非常に奇妙ですが、使用する場合は、どういうわけか適切な順序が必要です。

幸運と幸せなコーディング、

ヴィンセント・ドゥスーザ

于 2009-08-31T13:49:44.363 に答える
21

Firebug の [Net] タブを使用して、ファイルが読み込まれるかどうかを確認してください。

また、すべてのエラーで失敗するように Firebug を構成し、jQuery が読み込まれたときと比較してエラーが発生したときを確認することもできます。

于 2008-12-04T01:10:34.387 に答える
4

ページ内の JavaScript のバージョンとプロジェクト内のバージョンが一致しないというメッセージが表示されました。

ページ上: <script src="@Url.Content("~/Scripts/ jquery-1.4.4 .min.js")" type="text/javascript"></script>

プロジェクトの実際のバージョン: jquery-1.4.1 .min.js

受け入れられた回答で説明されているように、Firebugを使用して診断し、すべてのエラーを表示するように設定します。

于 2011-11-29T09:10:48.963 に答える
4

FIrebugを使用した後、ファイルの相対パスが機能しないため、ファイルが見つからないことがわかりました。この問題を解決するには、Url.Content メソッドを使用してパスを再設定する必要があります。例えば:

<script src="<%= Url.Content("~/Scripts/jquery-1.2.6.js")%>" type="text/javascript"></script>
于 2008-12-04T19:16:21.870 に答える
4

また、Google に jQuery をホストさせてみることもできます。

<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.2.6/jquery.min.js"></script>

これにより、スクリプトへの相対パスを気にする必要がなくなり、サーバーへの負荷が回避され、ユーザー (おそらくブラウザーのキャッシュのどこかに既にある) にとって高速になります。

于 2008-12-04T21:39:34.077 に答える
3

「text/javascript」の回答を詳しく説明すると、「application/javascript」はFirefoxで機能し、jQueryを正常にロードします。ただし、IE ではファイルをロードしません。「text/javascript」を使用:

<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js" ></script>
于 2010-03-31T15:35:56.370 に答える
3

Jquery?!
つまりjQuery

Javascript は大文字と小文字を区別します。Jqueryと同じではありませんjQuery

于 2008-12-04T01:11:43.790 に答える
2

このエラーのもう 1 つの理由は、cdn から jQuery をロードし、サーバーからローカル スクリプトをロードしている場合に発生することがわかりました。それらは独立してロードされるため、jQuery の前にローカル スクリプトが終了すると、jQuery も前に実行され、素敵なエラーが発生します。これは、jQuery がブラウザキャッシュにない場合に特に問題になるため、スクリプトが最初にロードされたときにこのエラーが発生し、後で消えることがあります。

于 2011-02-10T14:23:08.483 に答える
2

Raja の言う通り、URL.Content は機能します。

<script src="<%= Url.Content("~/Scripts/jquery-1.2.6.js")%>" type="text/javascript"></script>

さらに、アプリケーションを IIS サーバーに移行するときに驚かないように、開発時には Web 開発サーバーを使用せず、IIS を使用してください。

Web プロパティを編集することで、Visual Studio から IIS を直接使用できます。

  • タブ「Web」に移動します
  • 「ローカル IIS Web サーバーを使用する」にチェックを入れる
  • 「仮想ディレクトリの作成」をクリックします
  • 該当する場合は、IIS マネージャーに移動して、作成された仮想ディレクトリでの匿名アクセスを無効にします。
于 2009-03-10T10:18:40.730 に答える
1

私の場合、このエラーは通常、コードの一部に真のJavascriptエラーがある場合に発生します。これにより、jQuery.jsファイルが完全に解析されなくなります。Firebug、Safari、またはその他のデバッグに適したブラウザのエラーコンソールを確認してください。

于 2008-12-04T16:25:35.787 に答える
1

よくある間違いは、Jquery.js の前に他の Jquery スクリプト (Jquery.validation.js) が最初に含まれることです。

于 2009-01-24T03:04:15.017 に答える
0

試す

<script src="<%= ResolveUrl("~/Scripts/jquery-1.2.6.js")%>" type="text/javascript"></script>
于 2009-04-07T20:50:49.257 に答える
0

これは通常、HTMLまたはJavaScriptの形式が正しくない場合に発生します。

于 2008-12-04T01:06:03.147 に答える
0

JavaScriptにエラーがない場合(例:角かっこがない場合)、jQueryファイルが含まれていないか、ファイルが読み込まれる前にjQueryに依存するコードを実行しようとしています。

于 2008-12-04T01:06:12.163 に答える
0

他のすべてが失敗した場合は、ファイルに適切な権限が設定されていることを確認してください。これはちょうど私に起こりました!

ディレクトリ内のファイルを右クリックしてアクセス許可を設定するか、VisualStudioで別の.jsファイルを作成して内容をコピーして貼り付けることができます。チャームのように働いた。:)

于 2009-03-31T23:38:03.053 に答える
0

パスが間違っています。再確認してください。

于 2009-08-05T13:57:04.643 に答える
0

_Layout.cshtml で jQuery 参照のコメントを外して、この問題を解決しました。サイトを再起動した後、すべてが機能し始めました。

于 2011-03-27T06:23:21.970 に答える
0

私の問題/解決策をこの長いリストに追加するには...

Windows 2003 を使用して IE7 でサイトをテストしていました。サイトは正常に表示されましたが、jQuery はまったく実行されませんでした。そこで、http: //ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js に直接アクセスしたところ、ajax.googleapis.com が安全なサイトのリストにないことがわかりました。*.googleapis.com を追加すると、すべて正常に機能しました。ばかげた見落としですが、これは同様の状況にある他の誰かを助けるかもしれません。

于 2010-04-28T19:22:36.703 に答える
0

正しい!VSで新しいMVCプロジェクトをゼロから使用している場合、Layout.cshtmlページにJQueryへの独自の参照があります。ページ内で JQuery を参照しようとすると、Layout.cshtml ページ内の参照によって上書きされます。マスターページ (Layout.cshtml) のコードにコメントを付けると、ページ参照が使用されます。

于 2015-03-18T16:06:10.063 に答える