0

我尝试编写用于操作系统检测的 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>

问题是 && 不评估(返回 Baddddd ...)。

任何线索都会有所帮助。

4

3 回答 3

5

从您提供的代码中,您尚未定义变量LinuxAndroid.

尝试

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

在您声明 Windows 和 Safari 之后。

于 2012-11-23T21:47:16.963 回答
2

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

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

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

于 2012-11-23T21:48:44.063 回答
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>
于 2012-11-23T21:48:26.230 回答