当我启动项目并加载我的页面时,我收到以下错误:
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个问题:
我在本地主机上使用https,我应该使用jquery的https。改变这个摆脱了我原来的错误,但它给了我一些其他错误,我还在研究。
我的代码完美运行(以及更多,因为我打开了这个帖子),因为我现在也调用REST Web服务并操作返回的数据而没有一个错误,但这仅适用于Chrome和Firefox! IE11
答案 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 =没有更多的错误。
希望这有帮助