Jquery 使用ASP.NET脚本管理器的复合脚本
我尝试使用以下代码合成脚本:Jquery 使用ASP.NET脚本管理器的复合脚本,jquery,asp.net,scriptmanager,Jquery,Asp.net,Scriptmanager,我尝试使用以下代码合成脚本: <asp:Content ID="HeaderContent" runat="server" ContentPlaceHolderID="HeadContent"> <script> $(document).ready(function () { alert("asd"); }); </script> </asp:Content> <asp:
<asp:Content ID="HeaderContent" runat="server" ContentPlaceHolderID="HeadContent">
<script>
$(document).ready(function () {
alert("asd");
});
</script>
</asp:Content>
<asp:Content ID="BodyContent" runat="server" ContentPlaceHolderID="MainContent">
<asp:ScriptManager runat="server" ID="scMan1">
<CompositeScript>
<Scripts>
<asp:ScriptReference Path="~/Scripts/jquery-1.4.1.js" />
</Scripts>
</CompositeScript>
</asp:ScriptManager>
</asp:Content>
$(文档).ready(函数(){
警报(“asd”);
});
它似乎工作得很好,因为HTML生成的源脚本中存在包含jQuery的标记
<script src="/WebSite2/ScriptResource.axd?d=hX0MDGfWoeBxqyrCFnUlb_i8FIXYFH2jSHZZ8wsoh3wFhHjdmAfUYtPy5B129cjGB7udx4AYPQm_cJi8Xf7uSMn9bbw2gWuhnKTab4SQhBy8ulESCXITgKubR2QozYUq-EPeVYNsCW4jU_8hY-J9fA2" type="text/javascript"></script>
但是jQuery现在不起作用。当我引用脚本时,jQuery通常是有效的。
我做错了什么?非常感谢我的母版页如下所示: 然后我将脚本添加到
EndPage
区域
我在这里也包括了ajax的标准jQuery设置
<%@ Master AutoEventWireup="false" CodeBehind="Standard.master.cs" Inherits="NameNamespace.Standard" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title><asp:ContentPlaceHolder ID="headTitle" runat="server" /></title>
<link rel="Stylesheet" type="text/css" href="main.css" media="screen" />
<link rel="Stylesheet" type="text/css" href="print.css" media="print" />
<script src="Javascript/jquery-1.4.2.min.js" type="text/javascript"></script>
<script src="Javascript/jquery-ui-1.8.2.custom.min.js" type="text/javascript"></script>
<asp:ContentPlaceHolder id="head" runat="server" />
</head>
<body>
<form id="form1" runat="server" >
<span id="error" style="color:red" />
<asp:ContentPlaceHolder ID="MainContent" runat="server" />
<script type="text/javascript">
$.ajaxSetup({
type: "POST",
contentType: "application/json; charset=utf-8",
data: "{}",
dataFilter: function(data) {
var msg;
if (typeof (JSON) !== 'undefined' && typeof (JSON.parse) === 'function')
msg = JSON.parse(data);
else
msg = eval('(' + data + ')');
if (msg.hasOwnProperty('d'))
return msg.d;
else
return msg;
},
error: function(msg) {
$('#error').html(msg.responseText)
}
});
</script>
<asp:ContentPlaceHolder id="EndPage" runat="server" />
</form>
</body>
</html>
$.ajaxSetup({
类型:“POST”,
contentType:“应用程序/json;字符集=utf-8”,
数据:“{}”,
数据过滤器:函数(数据){
var-msg;
if(typeof(JSON)!='undefined'&&typeof(JSON.parse)==='function')
msg=JSON.parse(数据);
其他的
msg=eval(“(“+数据+”)”);
if(msg.hasOwnProperty('d'))
返回msg.d;
其他的
返回味精;
},
错误:函数(msg){
$('#error').html(msg.responseText)
}
});
原始答案
看起来你点错菜了。jQuery需要放在第一位——在您的示例中,在标题中使用jQuery的代码,在正文中使用jQuery本身。我的母版页如下所示: 然后我将脚本添加到
EndPage
区域
我在这里也包括了ajax的标准jQuery设置
<%@ Master AutoEventWireup="false" CodeBehind="Standard.master.cs" Inherits="NameNamespace.Standard" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title><asp:ContentPlaceHolder ID="headTitle" runat="server" /></title>
<link rel="Stylesheet" type="text/css" href="main.css" media="screen" />
<link rel="Stylesheet" type="text/css" href="print.css" media="print" />
<script src="Javascript/jquery-1.4.2.min.js" type="text/javascript"></script>
<script src="Javascript/jquery-ui-1.8.2.custom.min.js" type="text/javascript"></script>
<asp:ContentPlaceHolder id="head" runat="server" />
</head>
<body>
<form id="form1" runat="server" >
<span id="error" style="color:red" />
<asp:ContentPlaceHolder ID="MainContent" runat="server" />
<script type="text/javascript">
$.ajaxSetup({
type: "POST",
contentType: "application/json; charset=utf-8",
data: "{}",
dataFilter: function(data) {
var msg;
if (typeof (JSON) !== 'undefined' && typeof (JSON.parse) === 'function')
msg = JSON.parse(data);
else
msg = eval('(' + data + ')');
if (msg.hasOwnProperty('d'))
return msg.d;
else
return msg;
},
error: function(msg) {
$('#error').html(msg.responseText)
}
});
</script>
<asp:ContentPlaceHolder id="EndPage" runat="server" />
</form>
</body>
</html>
$.ajaxSetup({
类型:“POST”,
contentType:“应用程序/json;字符集=utf-8”,
数据:“{}”,
数据过滤器:函数(数据){
var-msg;
if(typeof(JSON)!='undefined'&&typeof(JSON.parse)==='function')
msg=JSON.parse(数据);
其他的
msg=eval(“(“+数据+”)”);
if(msg.hasOwnProperty('d'))
返回msg.d;
其他的
返回味精;
},
错误:函数(msg){
$('#error').html(msg.responseText)
}
});
原始答案
看起来你点错菜了。jQuery需要放在第一位——在您的示例中,头中有使用jQuery的代码,而正文中有使用jQuery本身的代码。我认为这是因为jQuery是在包含之前使用的
在本例中,您在头$()中使用jQuery,但jQuery核心包含在正文中。我认为这是因为jQuery在包含之前就已经使用了
在本例中,您在标题中使用jQuery$(,但jQuery core include在正文中。我想在母版页上使用脚本管理器。我不能把它放在页眉中,因为它应该在runat=server表单中。所以我把它放在正文中,现在其他jQuery插件放在其他页面中,我在页眉中使用它们,但它们不起作用。有什么办法吗?有办法,我会在几分钟后更新答案分钟。我想在母版页上使用脚本管理器。我不能把它放在页眉中,因为它应该在runat=server表单中。所以我把它放在body中,现在我在其他页面上的其他jQuery插件在页眉中使用它们,但它们不起作用。有什么办法吗?有办法,我会在几分钟内更新答案。我想使用脚本管理器on母版页。我不能把它放在页眉中,因为它应该在runat=server表单中。所以我把它放在body中,现在我在其他页面中的其他jQuery插件在页面页眉中使用,但它们不起作用。有什么办法吗?我想在母版页上使用脚本管理器。我不能把它放在页眉中,因为它应该在runat=server表单中。所以我放了我在页面标题中使用了body和其他页面中的其他jQuery插件,但它们不起作用。有什么办法吗?