我尝试编写用于操作系统检测的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 ......)。
任何线索都会有所帮助。
答案 0 :(得分:5)
根据您提供的代码,您尚未定义变量Linux
和Android
。
尝试
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>