问答详情
源自:8-13 userAgent

if(u_agent.indexOf("Firefox")>0)这样是否可以

<!DOCTYPE HTML>

<html>

<head>

<meta http-equiv="Content-Type" content="text/html; charset=utf-8">

<title>navigator</title>

<script type="text/javascript">

  function validB(){ 

    var u_agent = navigator.userAgent       ; 

    var B_name="不是想用的主流浏览器!"; 

    if(u_agent.indexOf("Firefox")>0){ 

        B_name="Firefox"; 

    }else if(u_agent.indexOf("Chrome")>0){ 

        B_name="Chrome"; 

    }else if(u_agent.indexOf("MSIE")>0&&u_agent.indexOf("Trident")>0){ 

        B_name="IE(8-10)";  

    }

        document.write("浏览器:"+B_name+"<br>");

        document.write("u_agent:"+u_agent+"<br>"); 

  } 

</script>

</head>

<body>

  <form>

     <input type="button"  onClick=validB() value="查看浏览器"   >

  </form>

</body>

</html>


提问者:思进行 2019-02-11 12:13

个回答

  • 哎哎哎没办法
    2020-04-05 16:53:18

    如Hcr所说,不可以。

    首先要明白indexOf()的用法,即返回()中字符串首先出现位置,显然0也是可能的,但是如果()中内容没有出现过,是会返回-1的。

  • Hcr
    2019-02-19 11:30:59

    引用慕友的回答。
    u_agent.indexOf("Chrome")>-1
    这是字符串对象的一个方法:在字符串string中检索的子串。
    string.indexOf(substring)

    如果在string中的start位置之后存在substring返回出现的第一个substring 的位置。如果没有找到子串substring返回-1。

    也就是在给出的信息u_agent里搜索有没有"Chrome"这个字符串,如果没有找到就返回-1,如果包含了就返回出现的位置。

    如果将indexOf的返回值的判断值-1改为0显然是不可以的,有indexOf返回0即=0的情况例如"Chrome"字符串出现的位置就为头位置0。

    https://img3.mukewang.com/5c6b77b40001fdf004570141.jpg