簡體   English   中英

JavaScript運行時錯誤:“ $”未定義-ASP.NET WebForms(MasterPage)

[英]JavaScript runtime error: “$” is undefined - ASP.NET WebForms (MasterPage)

我希望有人可以幫助我,因為我無法為我的問題找到可行的解決方案。

我正在使用C#在ASP.NET WebForms中進行編碼。 我使用母版頁。 在此MasterPage中,我在ScriptManager中定義了我的腳本。

<asp:ScriptManager ID="smScripts" runat="server">
    <Scripts>
        <asp:ScriptReference Path="~/Scripts/jquery-2.1.1.min.js" />
        <asp:ScriptReference Path="~/Scripts/bootstrap.min.js" />
        <asp:ScriptReference Path="~/Scripts/printArea.js" />
        <asp:ScriptReference Path="~/Scripts/globalFunctions.js" />
        <asp:ScriptReference Path="~/Scripts/jquery.browser.min.js" />
        <asp:ScriptReference Path="~/Scripts/jquery.reject.js" />
    </Scripts>
</asp:ScriptManager>

現在,如果我在函數內的任何頁面(例如Default.aspx)中使用jQuery,它將正常工作:

<script type="text/javascript">
    function Print(options) {
        $("div.PrintArea").printArea(options);
    }
</script>

但是,如果我嘗試直接在腳本塊中使用它(例如,等到文檔准備好之后),它將無法正常工作:

<script type="text/javascript">
    $(document).ready(function () {
        // some code
    });
</script>

我收到錯誤“ JavaScript運行時錯誤:“ $”未定義”。 我不知道該如何解決這個問題。

也許有人可以幫我嗎? 提前致謝。

只要確保

 <asp:ScriptReference Path="~/Scripts/jquery-2.1.1.min.js" />

在致電之前已寫入/加載

$(document).ready(function ()

您的代碼“函數Print(options)”工作正常,因為頁面准備就緒時未加載jquery庫,但過了一段時間后加載了jquery庫。 您的Print函數在調用時需要jquery,而不是在頁面就緒事件中。

假設我們要在每個頁面中添加jquery,因此您需要在母版頁中包含腳本的引用。

根據最佳做法,您應該將所有javascript參考和腳本放在<body> html標簽的末尾: </body>標簽之前。

因此,在您的情況下,您應該在<body>標記的末尾引用所有常見的js文件,然后設置如下所示的部分:

<asp:ContentPlaceHolder id="myJsWhatever" runat="server">

</asp:ContentPlaceHolder>

因此,在從母版頁繼承的頁面中,您在本節中定義了所有JS,並確保首先加載jquery。

如果您不想更改所有內容,只需在html頁面的head添加jquery引用。

如果我在ContentPlaceHolder 之前而不是ScriptManager使用簡單的腳本標記,則它可以工作:

<head>
    <script src="https://.../jquery-2.1.1.min.js" type="text/javascript"></script>

    <asp:ContentPlaceHolder ID="phHead" runat="server">
    </asp:ContentPlaceHolder>
</head>

為了確保每個內容頁面上的路徑都是正確的,我直接從服務器上加載了該路徑,而不是使用“〜/ scripts / ...”之類的路徑。 也許有更好的方法?

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM