&安培;&安培;语句javascript未评估

时间:2012-11-23 21:43:58

标签: javascript

我尝试编写用于操作系统检测的javascript代码。 我使用navigator.appVersion生成一个变量,然后对其进行评估。我在该变量上使用indexOf来评估if else语句。 使用字符串变量,如“Windows”,“Linux”,“iPhone”,.....我评估操作系统。 在Android手机上,我观察到navigator.appVersion返回的内容如下:

“5.0(Linux; U; Android .....)”

所以我生成了这段代码来解决问题:

<script type="text/javascript">
        var Windows="Windows";
        var Safari="Safari";
var OSName=navigator.appVersion;
alert(OSName);
function OS() {
if (OSName.indexOf(Linux)!=-1 && OSName.indexOf(Android)!=-1) {
        alert("Goooood");
} else {
    alert("Baddddd");
    }
}
</script>

问题在于&amp;&amp;不评估(返回Baddddd ......)。

任何线索都会有所帮助。

3 个答案:

答案 0 :(得分:5)

根据您提供的代码,您尚未定义变量LinuxAndroid

尝试

var Linux="Linux";
var Android="Android";

宣布Windows和Safari之后。

答案 1 :(得分:2)

这是实际的代码吗?看起来你没有在indexOf检查中引用你的字符串?

I believe it should be:
if (OSName.indexOf('Linux')!=-1 && OSName.indexOf('Android')!=-1) {

或者您的代码中没有显示Linux和Android字符串变量。

答案 2 :(得分:0)

<script type="text/javascript">
    var Windows="Windows";
    var Safari="Safari";
var OSName=navigator.appVersion;
alert(OSName);
function OS() {
if ((OSName.indexOf("Linux")!=-1) && (OSName.indexOf("Android")!=-1)) {
    alert("Goooood");
} else {
alert("Baddddd");
}
}
</script>