0x800a138f - JavaScript运行时错误:属性的值' $'是null或undefined,不是Function对象

时间:2014-05-21 14:09:52

标签: javascript jquery asp.net html5

当我启动项目并加载我的页面时,我收到以下错误:

  

0x800a138f - JavaScript运行时错误:属性的值' $'是null或undefined,不是Function对象。

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="TestPage.aspx.cs" Inherits="WebsiteTest.TestPage" %>

<!DOCTYPE html>

<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <title>Web Service Test</title>
    <script src="http://ajax.microsoft.com/ajax/jQuery/jquery-2.1.1.js" type="text/javascript"></script>
    <script type="text/javascript">
        $(function () {
            $('#tbDetails').hide();
            $('#btnClick').click(function () {
                alert('test');
            });
        });
    </script>
</head>
<body>
    <form id="form1" runat="server">
        <input type="button" id="btnClick" value="Get Data" />
        <table id="tbDetails">
            <thead style="background-color: #DC5807; color: White; font-weight: bold">
                <tr style="border: solid 1px #000000">
                   <td>Description</td>
                   <td>Comments</td>
                </tr>
            </thead>
            <tbody>
            </tbody>
        </table>
    </form>
</body>
</html>

我假设,它与JQuery有关,即使它应该被包含在内。

知道问题可能是什么?

感谢。

更新

使用时

<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.6.2/jquery.min.js"></script>

将继续研究它为什么不与MS合作!它绝对存在,因为我可以下载它!

更新

我发现了2个问题:

  1. 我在本地主机上使用https,我应该使用jquery的https。改变这个摆脱了我原来的错误,但它给了我一些其他错误,我还在研究。

  2. 我的代码完美运行(以及更多,因为我打开了这个帖子),因为我现在也调用REST Web服务并操作返回的数据而没有一个错误,但这仅适用于Chrome和Firefox! IE11

  3. 到底是怎么回事

4 个答案:

答案 0 :(得分:2)

从src中删除协议,浏览器将使用您的页面使用的任何内容。这是一个例子

<script src="//ajax.microsoft.com/ajax/jQuery/jquery-2.1.1.js" type="text/javascript"></script>

答案 1 :(得分:1)

在您的头脑中添加此元标记。我有同样的问题,我通过这个解决了它

<meta http-equiv="X-UA-Compatible" content="IE=edge;" />

答案 2 :(得分:0)

您是否尝试将整个js代码提取到单独的文件中,然后使用ClientScriptManager.RegisterClientScriptBlock在您的网站上使用它?

答案 3 :(得分:0)

我找不到这个非常恼人的问题的答案所以我正在添加我的解决方案(可能不是唯一的解决方案,但是这里有)。

如果您的物理文件夹路径包含下划线,则无法加载jQuery。所以,如果你放弃你的网站让我们说C:\MyRoot\MyFolder_2\WebSite1\那么它就行不通了。但是,如果删除下划线并且变为C:\MyRoot\MyFolder2\WebSite1\它将起作用并且将突然加载jQuery。 jQuery loaded =没有更多的错误。

希望这有帮助