0x800a138f - JavaScript 运行时错误:属性“$”的值为 null 或未定义,不是函数对象

Posted

技术标签:

【中文标题】0x800a138f - JavaScript 运行时错误:属性“$”的值为 null 或未定义,不是函数对象【英文标题】:0x800a138f - JavaScript runtime error: The value of the property '$' is null or undefined, not a Function object 【发布时间】:2014-07-10 05:51:43 【问题描述】:

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

0x800a138f - javascript 运行时错误:属性“$”的值为 null 或未定义,不是 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 一起使用!绝对有,我可以下载!

更新

我发现了两个问题:

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

    我的代码运行良好(因为我已经打开了这个线程,所以现在我还调用了一个 REST Web 服务并操作返回的数据而没有出现任何错误,但这仅适用于 Chrome 和 Firefox! IE11 到底是怎么回事

【问题讨论】:

@celeriko 代码已经包装在一个就绪的处理程序中! @Pointy 你是什么意思? 他 (celeriko) 正在讨论您的内联脚本块中代码的 $( ... ) 包装器。 $(function() ... ) 的含义与(现已删除)评论中的建议完全相同。 您可以使用浏览器“网络”调试控制台查看获取 jQuery 的 HTTP 请求是否有效。我不明白为什么它不起作用;该网址是正确的。我会尝试摆脱所有&lt;script&gt; 标签上的“类型”属性,但即使这些在这里看起来也不错。 这太疯狂了!!它只是行不通!我将 src 更改为使用 google 的那一刻,它就起作用了!我会继续研究它,但是太浪费时间了! 【参考方案1】:

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

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

【讨论】:

【参考方案2】:

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

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

【讨论】:

【参考方案3】:

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

【讨论】:

我没有。我正在关注我在网上找到的示例,并且我已经下载了该项目,并且它没有在任何地方使用任何 ClientScriptManager.RegisterClientScriptBlock。我还没有尝试运行他们的项目,但它看起来很简单!奇怪的是,我还有另外 2 个测试项目,它们都接受 JQuery 没问题,但它们在不同的机器上。我仍在尝试找出两者之间的不同之处,但无济于事。 我已经看到它在浏览器级别上不起作用。试试forcing "edge" standards。在很多情况下,这对我来说都是解决方案。【参考方案4】:

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

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

希望对你有帮助

【讨论】:

以上是关于0x800a138f - JavaScript 运行时错误:属性“$”的值为 null 或未定义,不是函数对象的主要内容,如果未能解决你的问题,请参考以下文章

[JavaScript]function expression(函数陈述式) VS declaration (函数运算式)

Python自动化运维之22JAVAScript

JavaScript学习笔记————JavaScript的应用环境

JavaScript 中 this 的用法

正则表达式-JavaScript 密码测试

通过任务运行器添加 gulp-sass 中断