使用Mozilla Firefox时,我的ASP.NET MVC应用程序出现问题。我使用的是JQuery,这段代码不起作用。在Google Chrome和IE 8中,一切都很好。怎么解决这个问题如有必要,我将发布部分JQuerycode
在站点母版页中,我包含脚本,如下所示:
<script type="text/javascript" src="../../Scripts/jquery-1.3.2.js"></script>
<script src="../../Scripts/jquery-1.3.2.js" type="text/javascript"></script>
<script type="text/javascript" src="../../Scripts/ui.core.js"></script>
<script type="text/javascript" src="../../Scripts/ui.selectable.js"></script>
<script type="text/javascript" src="../../Scripts/ui/ui.accordion.js"></script>
<script type="text/javascript" src="../../Scripts/MicrosoftAjax.debug.js"></script>
<script type="text/javascript" src="../../Scripts/MicrosoftMvcAjax.debug.js"></script>
<script type="text/javascript" src="../../Scripts/jquery.dataTables.js"></script>
<script type="text/javascript" src="../../Scripts/ui/ui.datepicker.js"></script>
<script type="text/javascript" src="../../Scripts/jquery.bstablecrosshair.js"></script>
<script src="../../Scripts/jquery.jqGrid.min.js" type="text/javascript"></script>
<script src="../../Scripts/jqModal.js" type="text/javascript"></script>
<script src="../../Scripts/jqDnR.js" type="text/javascript"></script>
代码中最重要的部分不适用于Firefox:
<script type="text/javascript">
$(document).ready(function() {
$('input:radio').click(function() {
var num = "";
var location = "";
var loc = $("input:checked").val();
var lenght = loc.lenght;
var tmp = loc.substring(0, 2);
if (tmp == "SA") {
num = loc.substring(2, lenght);
location = "SA";
}
if (tmp == "ST") {
num = loc.substring(2, lenght);
location = "STH";
}
if (tmp == "SH") {
num = loc.substring(2, lenght);
location = "SASTH";
}
if (tmp == "NE") {
num = loc.substring(2, lenght);
location = "NEW";
}
var article_number = $("input[id=" + num + "]").val();
//alert(article_number +" "+ num);
$.post("/ImportXML/DevAccEditTempTable", { location: location, article_number: article_number, loc: num }, function(data) {
if (data.error == "Error") {
alert("Error: quantity is too large! ");
window.location.href = "/" + data.redirect;
}
else {
window.location.href = "/" + data.redirect;
}
}, "json");
});
});
</script>
答案 0 :(得分:2)
对于基本的Javascript / jQuery调试,请尝试以下方法:
<script type="text/javascript">
alert("Javascript works!");
$(document).ready(function(){
alert("jQuery works!");
});
</script>
如果您只获得第一个警报窗口,则表示引用jQuery的方式有问题。如果你没有在Firefox中获得任何一个窗口(但你在其他浏览器中都有),你需要确保在选项&gt;中打开Javascript。内容,你要确保没有插件会阻止Javascript。
(已编辑,因为原始帖子中添加了更多代码段:)
在您发布的第二个代码段中,“loc.lenght”应为“loc.length”。
$('input:radio').click(function() {
var num = "";
var location = "";
var loc = $("input:checked").val();
var lenght = loc.lenght;
var tmp = loc.substring(0, 2);
alert(loc.substring(2, lenght));
似乎行var lenght = loc.lenght;
导致问题,因为loc.lenght
可能没有返回您想要的值(因为lenght
不是属性)。我在您的代码中添加了alert
,它应该弹出您在本节后面的if
语句中计算的字符串。您应该运行此代码,并在所有三个浏览器中使用alert
来查看区别。
我不确定为什么这会在某些浏览器中运行,但不适用于Firefox。也许loc.lenght
在IE 8和Chrome中返回0,但在Firefox中返回null
,这会破坏整个计算。
答案 1 :(得分:1)
检查Firefox中是否禁用了Javascript。此外,请检查可能阻止某些Google网址的广告拦截器等FF插件,如果您让Google托管JQuery库,则可能会出现问题。
答案 2 :(得分:1)
你的问题很可能是你拼错了Lenght
这个词。
var lenght = loc.lenght;
&lt; - 应为loc.length
答案 3 :(得分:0)
Jquery在firefox上对我工作得很好,也许如果你发布的帖子给你带来了困难,社区可以指向你正确的方向。
答案 4 :(得分:0)
安装fiddler,浏览器的行为方式不同,有些是严格的,有些是松散的,你应该明白Chrome会在你不知道的情况下解决你的代码中的问题,而firfox可能不会。
检查Chrome调试器Ctrl-Shift-J
并安装fiddler。
答案 5 :(得分:0)
如果发布的脚本是您正在使用的脚本,看起来您实际上并未包含jQuery。