如果。。。。否则,如果。。。。语句未以javascript提供任何输出

如果。。。。否则,如果。。。。语句未以javascript提供任何输出,javascript,jquery,Javascript,Jquery,如果。。。。否则,如果。。。。未以javascript提供任何输出 实际上,我正在使用If….将javascript的navigation.userAgent字符串与一些预定义的字符串进行匹配。。。。Else If…语句,但脚本的长度约为1.76 MB脚本包含一些jquery以及javascript代码,在执行时,如果条件为true,则没有得到任何输出,如If。。。。否则,如果……语句代码块。请提出一些简单有效的解决方案,任何帮助都必须感谢 编辑01 脚本通过标记的src属性附加到my Inde

如果。。。。否则,如果。。。。未以javascript提供任何输出

实际上,我正在使用
If….将javascript的
navigation.userAgent
字符串与一些预定义的字符串进行匹配。。。。Else If…
语句,但脚本的长度约为
1.76 MB
脚本包含一些jquery以及javascript代码,在执行时,如果条件为true,则没有得到任何输出,如
If。。。。否则,如果……
语句代码块。请提出一些简单有效的解决方案,任何帮助都必须感谢

编辑01

脚本通过
标记的
src
属性附加到my Index.html

实际的代码块非常大,它只是该脚本的一个小代码段,但后面的代码与此完全相似

$(function(){
 var winURL = $("body").attr("winredirection");
 var androidURL = $("body").attr("androidredirection");
 var mobURL = $("body").attr("mobredirection");
 var bbURL = $("body").attr("bbredirection");

 if (navigator.userAgent=="Mozilla/5.0 (compatible; U; ABrowse 0.6;Syllable) AppleWebKit/420+ (KHTML, like Gecko)") {
   window.location.assign($("body").attr("winredirection"));
 }
 else if (navigator.userAgent=="Mozilla/5.0 (compatible; ABrowse 0.4; Syllable)") {
   window.location.assign($("body").attr("winredirection"));
 }
 else if (navigator.userAgent=="Mozilla/5.0 (compatible; MSIE 8.0; Windows NT 6.0; Trident/4.0; Acoo Browser 1.98.744; .NET CLR 3.5.30729)") {
   window.location.assign($("body").attr("winredirection"));
 }
 else if (navigator.userAgent=="Mozilla/5.0 (compatible; MSIE 8.0; Windows NT 6.0; Trident/4.0; Acoo Browser 1.98.744; .NET CLR   3.5.30729)"){window.location.assign($("body").attr("winredirection"));}else if (navigator.userAgent=="Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.0; Trident/4.0;   Acoo Browser; GTB5; Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1;   SV1) ; InfoPath.1; .NET CLR 3.5.30729; .NET CLR 3.0.30618)"){window.location.assign($("body").attr("winredirection"));}else if (navigator.userAgent=="Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; SV1; Acoo Browser; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729; Avant Browser)"){window.location.assign($("body").attr("winredirection"));}

});
编辑02

我的Index.html页面

<!DOCTYPE html> 
<html> 
<head> 
<title> 
  Platform Identification using perfect.api.js
</title> 
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.2/jquery.min.js"></script> 
<script src="perfect.api.js"></script> 
</head> 
<body winredirection="http://google.com"  androidredirection="www.google.com/mobile/android" mobredirection="www.google.com/mobile" bbredirection="www.google.com/mobile/bb"> 

</body> 
</html>

使用perfect.api.js进行平台识别
谢谢


API开发者

首先,我绝对建议不要手动解析用户代理字符串,因为代码很容易变得一团糟,尤其是使用一大堆if/else if语句进行维护的方式。我会使用这样的库:。使用它的getOs()函数来确定正在使用的操作系统,或者使用它的其他函数来确定正在使用的设备,而不是匹配特定的用户代理

您当前拥有的代码看起来不错,我无法测试它,因为我在示例中提供的用户代理字符串中没有任何浏览器,但我建议使用上面链接的库执行类似操作:

var parser = new UAParser();
var os = parser.getOS();

if(os.name == "windows") {
 $("body").attr("winredirection");
}
//other operating systems and/or devices go below.

如果您打算检测移动设备并因此重定向,则应检查用户代理字符串中的特定令牌,而不是精确匹配,因为精确匹配不太可能匹配,因为它们会因操作系统版本、浏览器版本以及在某些情况下设备上安装的软件而异


要检查移动设备,请尝试使用switch语句或dispatch中的答案array@Ed_Heal您能否提供代码以及问题产生的原因?来自代码片段。对于IE或safari浏览器,我们似乎在body中添加了winredirection元素,对吗?您没有找到浏览器详细信息,为什么不使用api.jquery.com/jquery.browser/,我不想使用任何第三方库。您可以自己手动编写代码,网上有很多关于使用regex检测正在使用的设备的资源。你为什么不想使用第三方库呢?在我的项目中使用其他人创建的库时,我感觉很糟糕。你使用的是其他人创建的jQuery,你的操作系统、浏览器、Javascript等等。开放源代码是可以使用的,如果这能让你感觉更好的话,请随意贡献,但出于内疚而不使用它只会伤害你自己。在开发过程中,您将始终在其他人的工作之上进行构建,这是工程的本质,科学和人类创新。如果您在其他问题上需要帮助,请随时提出有关StackOverflow的其他问题,以便整个社区都能参与。感谢我将牢记这一点,并在解决当前错误后,一定会在我的脚本中实施。