jquery在本地主机上工作,但不在IIS上工作
我正在ASP.NET MVC4上创建一个应用程序 我在jqGrid中显示数据,它有一个附加了name列的超链接 单击它,将打开一个jQuery对话框 当我部署应用程序时,同样的事情不起作用 我收到一条错误消息:jquery在本地主机上工作,但不在IIS上工作,jquery,asp.net-mvc-4,iis,jqgrid,localhost,Jquery,Asp.net Mvc 4,Iis,Jqgrid,Localhost,我正在ASP.NET MVC4上创建一个应用程序 我在jqGrid中显示数据,它有一个附加了name列的超链接 单击它,将打开一个jQuery对话框 当我部署应用程序时,同样的事情不起作用 我收到一条错误消息: TypeError: n.browser is undefined 错误显示在: <script src="/Analytics/bundles/jqueryui?v=a0vNGd5I0ua6k0Tl4zU-HRoN0y8crNJXKefaMq_937w1"> _Layo
TypeError: n.browser is undefined
错误显示在:
<script src="/Analytics/bundles/jqueryui?v=a0vNGd5I0ua6k0Tl4zU-HRoN0y8crNJXKefaMq_937w1">
_Layout.cshtml
(总码)
(机构代码)
JQGrid视图包含:
@section Scripts{
@Scripts.Render("~/bundles/jqueryval")
@Scripts.Render("~/Scripts/i18n/grid.locale-en.js")
@Scripts.Render("~/Scripts/jquery.jqGrid.min.js")
}
检查链接
var匹配,浏览器;
jQuery.uaMatch=函数(ua){
ua=ua.toLowerCase();
变量匹配=/(chrome)[\/]([\w.]+)/.exec(ua)||
/(webkit)[\/]([\w.]+)/.exec(ua)||
/(opera)(?:.*版本|)[\/]([\w.]+)/.exec(ua)||
/(msie)([\w.]+)/.exec(ua)||
ua.indexOf(“兼容”)<0&/(mozilla)(?:.*rv:([\w.]+)/.exec(ua)||
[];
返回{
浏览器:匹配[1]| |“”,
版本:匹配[2]| |“0”
};
};
matched=jQuery.uaMatch(navigator.userAgent);
浏览器={};
如果(匹配的浏览器){
browser[matched.browser]=true;
browser.version=匹配的.version;
}
//Chrome是Webkit,但Webkit也是Safari。
如果(browser.chrome){
browser.webkit=true;
}else if(browser.webkit){
browser.safari=true;
}
嘿,您必须使用最新版本的jquery,即:
它肯定会解决这个错误 您能用jQuery和jQueryUI使用的两个捆绑包更新您的帖子吗 您必须在调试模式和发布模式下使用两个不同版本的jQuery。请看一看
您可以使用n.browser,因为您的脚本已缩小,否则它的$.browser将直接在视图顶部引用您的jquery文件。捆绑包有时不能正常工作:
@section Scripts
{
<script src="../Scripts/jquery-1.10.1.js"></script>
<script src="../Scripts/jquery-1.10.1.min.js"></script>
<script src="../Scripts/jquery.validate.js"></script>
.
.
.
etc.....
@节脚本
{
.
.
.
等
}无论.NET运行的是4.0还是4.5,都需要在web.config中设置compilation debug=“false”以使用Jquery&css绑定
compilation debug=“false”targetFramework=“4.0”当您使用“~/Scripts/jquery-{version}.js”时,它将使用脚本文件夹中的jquery版本。它是否与您在本地主机和服务器中使用的版本相同?抱歉,信息不完整。我正在使用jquery-2.1.0和jquery-ui-1.10.4。我在localhost和IIS中使用了相同的版本,在IIStry上发布和部署了相同的代码,包括
之后的@Scripts.Render(“~/bundles/jquery”)
工作得很好,谢谢:)将此作为临时解决方案,因为它是从较旧版本的jquery(1.9之前到1.9或更高版本)升级时使用的。要找到真正的问题,还得多挖点。根据您所说的,您使用的是支持jQuery1.6+的jQueryUI版本,但不确定它是否支持jQuery2+。他们有一个新版本的jQueryUI(1.11)。请尝试使用它并删除迁移插件
@Scripts.Render("~/bundles/jquery")
@Scripts.Render("~/bundles/jqueryui")
@RenderSection("scripts", required: false)
@section Scripts{
@Scripts.Render("~/bundles/jqueryval")
@Scripts.Render("~/Scripts/i18n/grid.locale-en.js")
@Scripts.Render("~/Scripts/jquery.jqGrid.min.js")
}
var matched, browser;
jQuery.uaMatch = function( ua ) {
ua = ua.toLowerCase();
var match = /(chrome)[ \/]([\w.]+)/.exec( ua ) ||
/(webkit)[ \/]([\w.]+)/.exec( ua ) ||
/(opera)(?:.*version|)[ \/]([\w.]+)/.exec( ua ) ||
/(msie) ([\w.]+)/.exec( ua ) ||
ua.indexOf("compatible") < 0 && /(mozilla)(?:.*? rv:([\w.]+)|)/.exec( ua ) ||
[];
return {
browser: match[ 1 ] || "",
version: match[ 2 ] || "0"
};
};
matched = jQuery.uaMatch( navigator.userAgent );
browser = {};
if ( matched.browser ) {
browser[ matched.browser ] = true;
browser.version = matched.version;
}
// Chrome is Webkit, but Webkit is also Safari.
if ( browser.chrome ) {
browser.webkit = true;
} else if ( browser.webkit ) {
browser.safari = true;
}
@section Scripts
{
<script src="../Scripts/jquery-1.10.1.js"></script>
<script src="../Scripts/jquery-1.10.1.min.js"></script>
<script src="../Scripts/jquery.validate.js"></script>
.
.
.
etc.....