吾知网

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 6216|回复: 0
打印 上一主题 下一主题

用js识别是否360浏览器

[复制链接]
跳转到指定楼层
楼主
发表于 2015-10-30 10:29:45 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

360浏览器说实话比较恶,以前可以通过内核返回的字符串判定是否包含"360"字样的方法来判定

如以下代码

     window.navigator.userAgent.indexOf('360')!=-1

但360浏览器某次更新后,内核显示的字符串已经和IE浏览器是一样的了,导致无法判断是IE还是360。但有人又说了,既然是一样IE的内核,不需要单独判定是不是360的,我说这些人站着说话不腰疼,不知道他们有没有编写过一些代码,发现在IE和360浏览器的表现行为是不一样的。因此,这个判断还是有必要的,后面大家都出了一些偏门的方法,比如 写js去加载这个图片'res://360se.exe/2/2025',我不知道如果加载不了这个图片,是不是一直会挂在那里,我是懒得去试这种方法。

下面我看了下 window.navigator的成员集合,想想应该这么多成员集合,360不会都实现了吧?结果最后终于发现了一些区别,下面给出我的判断代码。



  • <%@ page language="java" import="java.util.*" pageEncoding="GBK"%>  
  • <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">   
  • <html>  
  •   <head>  
  •     <base >  
  •     <title></title>  
  •     <script>  
  •         function bro(){
  •             var is360 = false;  
  •             var isIE = false;  
  •             if (window.navigator.appName.indexOf("Microsoft") != -1){
  •                 isIE= true;  
  •             }
  •             if(isIE&&(window.navigator.userProfile+'')=='null'){
  •                 is360 = true;  
  •             }
  •             if(is360){
  •                 document.body.innerText = '360浏览器';  
  •             }else if(isIE){
  •                 document.body.innerText = 'IE浏览器';  
  •             }
  •         }
  •     </script>  
  •   </head>  
  •   <body onload="bro();">  
  •   </body>  
  • </html>  



注意不要忘了这句话,不然你的执行结果是不会对的。


  • <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">   


以上方法我已经在项目中使用了,效果还行。




PS:以上是好久以前写的,现在已经没用了,现在360浏览器6.3版本,是跟Chrome浏览器内核一样了,不是和之前的IE内核,360真是变来变去,以下是现在修改的代码(2014年5月30日写)


  • <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">     
  • <html>   
  •   <head>   
  •     <base >   
  •     <title></title>   
  •     <script>   
  •         function bro(){
  •             var is360 = false;   
  •             var isIE = false;   
  •             var isFirefox = false;  
  •             var isCrome = false;  
  •             var broName = '';  
  •             if(window.navigator.userAgent.indexOf('MSIE')!=-1&&window.navigator.appName.indexOf("Microsoft") != -1){
  •                 isIE = true;  
  •                 broName = 'IE';  
  •             }
  •             if(window.navigator.userAgent.indexOf('Firefox')!=-1){
  •                 isFirefox = true;  
  •                 broName = 'Firefox';  
  •             }
  •             if(window.navigator.userAgent.indexOf('Chrome')!=-1){
  •                 if(window.navigator.webkitPersistentStorage){
  •                     isCrome = true;  
  •                     broName = 'Chrome';  
  •                 }else{
  •                     is360 = true;  
  •                     broName = '360';  
  •                 }
  •             }
  •             document.getElementById('broType').value=broName;  
  •         }
  •     </script>   
  •   </head>   
  •   <body onload="bro();">   
  •      <input type="text" id="broType" name="broType">  
  •   </body>   
  • </html>   


现在请用最新的方法来判定。


您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|吾知网 ( 粤ICP备13013563号-1 )

GMT+8, 2024-12-23 01:19 , Processed in 1.125000 second(s), 10 queries , Memcache On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表