如果...... Else If ....声明没有在javascript

时间:2015-06-14 05:45:55

标签: javascript jquery

如果......其他如果....没有在javascript中提供任何输出

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

修改01

  

该脚本附加到我的Index.html,并带有<script>代码src属性。

实际的代码块非常大,它只是该脚本的一小段代码片段,但超出的代码与此类似。

$(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>

谢谢,

API开发人员

2 个答案:

答案 0 :(得分:1)

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

要检查移动设备,请尝试Detecting a mobile browser

中的答案

答案 1 :(得分:0)

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

您目前拥有的代码看起来很好,我无法测试它,因为我没有您的示例中提供的用户代理字符串中的任何浏览器,但我建议使用上面链接的图书馆:

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

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