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不会都实现了吧?结果最后终于发现了一些区别,下面给出我的判断代码。

  1. <%@ page language="java" import="java.util.*" pageEncoding="GBK"%>
  2. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  3. <html>
  4. <head>
  5. <base >
  6. <title></title>
  7. <script>
  8. function bro(){
  9. var is360 = false;
  10. var isIE = false;
  11. if (window.navigator.appName.indexOf("Microsoft") != -1){
  12. isIE= true;
  13. }
  14. if(isIE&&(window.navigator.userProfile+'')=='null'){
  15. is360 = true;
  16. }
  17. if(is360){
  18. document.body.innerText = '360浏览器';
  19. }else if(isIE){
  20. document.body.innerText = 'IE浏览器';
  21. }
  22. }
  23. </script>
  24. </head>
  25. <body onload="bro();">
  26. </body>
  27. </html>

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

  1. <!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日写)

  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  2. <html>
  3. <head>
  4. <base >
  5. <title></title>
  6. <script>
  7. function bro(){
  8. var is360 = false;
  9. var isIE = false;
  10. var isFirefox = false;
  11. var isCrome = false;
  12. var broName = '';
  13. if(window.navigator.userAgent.indexOf('MSIE')!=-1&&window.navigator.appName.indexOf("Microsoft") != -1){
  14. isIE = true;
  15. broName = 'IE';
  16. }
  17. if(window.navigator.userAgent.indexOf('Firefox')!=-1){
  18. isFirefox = true;
  19. broName = 'Firefox';
  20. }
  21. if(window.navigator.userAgent.indexOf('Chrome')!=-1){
  22. if(window.navigator.webkitPersistentStorage){
  23. isCrome = true;
  24. broName = 'Chrome';
  25. }else{
  26. is360 = true;
  27. broName = '360';
  28. }
  29. }
  30. document.getElementById('broType').value=broName;
  31. }
  32. </script>
  33. </head>
  34. <body onload="bro();">
  35. <input type="text" id="broType" name="broType">
  36. </body>
  37. </html>

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

用js识别是否360浏览器的更多相关文章

  1. 用JS识别各版本浏览器

    自昨天发了各浏览器内核介绍的随笔,就闲不住了,想直接写个JS来识别用户所用浏览器版本. 写着写着却发现很多坑爹的地方,比如IE10-的版本是依循常规支持attachEvent,但到了IE11,却只支持 ...

  2. 360极速浏览器UA怪异以及如何用js判断360浏览器

    本文最后一次更新于7个月前,文章内容可能略有出入.若发现文章中有错误之处,可以留言评论告诉作者. 1.360极速浏览器UA因域名不同而异 今天在写一个判断浏览器.浏览器版本.操作系统.操作系统版本.浏 ...

  3. 通过JS检测360浏览器

    如何通过JS检测360浏览器? 尝试了一大堆方法,网上大多数办法都是通过navigator.userAgent来判断,这可能在几年前是行得通的,现在360userAgent输出来跟谷歌除了版本号其余一 ...

  4. 浏览器兼容处理(HTML条件注释、CSSHack和JS识别)

    前面的话 本文中所有IEx+代表包含x及x以上:IEx-代表包含x及x以下,仅个人习惯.例:IE7+代表IE7.IE8…… 本文中所有例子全部经过测试,欢迎交流. HTML识别 条件注释法(IE10+ ...

  5. 兼容ie[6-9]、火狐、Chrome、opera、maxthon3、360浏览器的js本地图片预览

    html代码: <div id="divPreview"> <img id="imgHeadPhoto" src="Images/H ...

  6. js+jquery检测用户浏览器型号(包括对360浏览器的检测)

    做网站,js检测用户浏览器的版本,是经常要使用到,今天自己写了一个js,完成了对于一些常见浏览器的检测,但是,偏偏对于360浏览器的检测没有任 何办法,研究了一会儿,无果.无论是360安全浏览器,还是 ...

  7. jsonP 现在360浏览器竟然阻止本机 jquery load一些html js什么的

    别的浏览器正常可以jquery.load本机文件,但是360浏览器不行了,缺德啊!! jsonP代码 index3.html <!DOCTYPE HTML PUBLIC "-//W3C ...

  8. 360浏览器兼容模式下jsp页面访问不到js文件

    360浏览器兼容模式下jsp页面访问不到js文件 查看自己js中的语法问题,不要用ES6的语法,编译不了故找不到js文件 const var of 码出高效 java 比较 所有整型包装类对象之间值的 ...

  9. JS检测是否是360浏览器

    // JavaScript Document //application/vnd.chromium.remoting-viewer 可能为360特有 var is360 = _mime("t ...

随机推荐

  1. sql查询当前月内的所有日期

    ),),)) as dt from master..spt_values where type='P' ),),),,)')

  2. springmvc常用注解与类型转换

    springmvc常用注解与类型转换 一:前置 spring -servlet.xml 注入 <!-- 启用spring mvc 注解 --> <context:annotation ...

  3. underscorejs

    Underscore是一个JavaScript实用库,提供了一整套函数式编程的实用功能,但是没有扩展任何JavaScript内置对象.它是这个问题的答案:“如果我在一个空白的HTML页面前坐下, 并希 ...

  4. jquery tmpl遍历

    最近发现大家用模板渲染一些顺带逻辑功能代码块时,用jquery tmpl较多,遇到了一些问题,现在就个人以前研究过的一切常用功能作介绍,主要针对遍历,其它的大家可以自行浏览一起网站,如:http:// ...

  5. 【Python】python2.7安装pysvn

    wget最新的版本地址自己修改 1.编译安装apr.apr-utilwget https://mirrors.tuna.tsinghua.edu.cn/apache/apr/apr-1.5.2.tar ...

  6. js获取浏览器语言(ie、ff、chrome)、contextpath

    /js获取浏览器语言(ie.ff.chrome) var language_en_us = "en-us"; var language_zh_cn = "zh-cn&qu ...

  7. mysql之字符编码问题

    mysql编码分为服务端编码和客户端编码两大类字段编码, 表编码, 数据库编码这些编码都属于服务端编码,服务端编码决定你可以存哪些字符以及这些字符要哪种规则排序.字段编码优先级最高. 你插入用什么码属 ...

  8. web语义化与h5新增标签

    Web语义化就是html告诉我们也告诉机器这一块是什么内容,例如:“这行是一个标题,这几行组成一个段落,这是一个列表,那是一个链接.”   Web语义化有三个阶段: 1.h1~h6.thead.ul. ...

  9. Linux内核分析第二周学习总结:操作系统是如何工作的?

    韩玉琪 + 原创作品转载请注明出处 + <Linux内核分析>MOOC课程http://mooc.study.163.com/course/USTC-1000029000 一.函数调用堆栈 ...

  10. C#连接数据库的四种方法

    在进行以下连接数据库之前,请先在本地安装好Oracle Client,同时本次测试System.Data的版本为:2.0.0.0. 在安装Oracle Client上请注意,如果OS是3-BIT请安装 ...