JavaScript判断访问的来源是手机还是电脑,用的哪种浏览器


Posted in Javascript onDecember 12, 2013

js 判断是什么类型浏览器

 if ( window.sidebar && "object" == typeof( window.sidebar ) && "function" == typeof( window.sidebar.addPanel ) ) //  firefox
{
  }
   else if ( document.all && "object" == typeof( window.external ) )   //  ie
   {
    }

js用来区别IE与其他浏览器及IE6-8之间的方法。

1、document.all
2、!!window.ActiveXObject;

使用方法如下:

if (document.all){
alert(”IE浏览器”);
}else{
alert(”非IE浏览器”);
}

if (!!window.ActiveXObject){
alert(”IE浏览器”);
}else{
alert(”非IE浏览器”);
}

下面是区别IE6、IE7、IE8之间的方法:

var isIE=!!window.ActiveXObject;
var isIE6=isIE&&!window.XMLHttpRequest;
var isIE8=isIE&&!!document.documentMode;
var isIE7=isIE&&!isIE6&&!isIE8;
if (isIE){
if (isIE6){
alert(”ie6″);
}else if (isIE8){
alert(”ie8″);
}else if (isIE7){
alert(”ie7″);
}
}

首先我们确保这个浏览器为IE的情况下,进行了在一次的检测,如果你对此有怀疑,可以测试一下。

我这里就直接使用在判断中了,你也可以将他们先进行声明成变量进行使用。据说火狐以后也会加入document.all这个方法,所以建议使用第二种方法,应该会安全一些。

用navigator.userAgent.indexOf()来区分多浏览器,代码示例如下:

<coding-1 lang="other">
<script type="text/javascript">
var browser={ 
versions:function(){ 
var u = navigator.userAgent, app = navigator.appVersion; 
return { 
trident: u.indexOf('Trident') > -1, //IE内核 
presto: u.indexOf('Presto') > -1, //opera内核 
webKit: u.indexOf('AppleWebKit') > -1, //苹果、谷歌内核 
gecko: u.indexOf('Gecko') > -1 && u.indexOf('KHTML') == -1, //火狐内核 
mobile: !!u.match(/AppleWebKit.*Mobile.*/)||!!u.match(/AppleWebKit/), //是否为移动终端 
ios: !!u.match(/\(i[^;]+;( U;)? CPU.+Mac OS X/), //ios终端 
android: u.indexOf('Android') > -1 || u.indexOf('Linux') > -1, //android终端或者uc浏览器 
iPhone: u.indexOf('iPhone') > -1 || u.indexOf('Mac') > -1, //是否为iPhone或者QQHD浏览器 
iPad: u.indexOf('iPad') > -1, //是否iPad 
webApp: u.indexOf('Safari') == -1 //是否web应该程序,没有头部与底部 
};
}()
} 
document.writeln(" 是否为移动终端: "+browser.versions.mobile);
document.writeln(" ios终端: "+browser.versions.ios);
document.writeln(" android终端: "+browser.versions.android);
document.writeln(" 是否为iPhone: "+browser.versions.iPhone);
document.writeln(" 是否iPad: "+browser.versions.iPad);
document.writeln(navigator.userAgent); 
</script>
</coding>

JavaScript不管是判断PC浏览器还是手机浏览器,都是通过User Agent 来判断。
Javascript 相关文章推荐
xheditor与validate插件冲突的解决方案
Apr 15 Javascript
jquery URL参数判断,确定菜单样式
May 31 Javascript
如何制作浮动广告 JavaScript制作浮动广告代码
Dec 30 Javascript
基于JavaScript实现div层跟随滚动条滑动
Jan 12 Javascript
JavaScript String 对象常用方法总结
Apr 28 Javascript
AngularJS 指令的交互详解及实例代码
Sep 14 Javascript
AngularJS ui-router (嵌套路由)实例
Mar 10 Javascript
Bootstrap警告框(Alert)插件使用方法
Mar 21 Javascript
vue中的计算属性实例详解
Sep 19 Javascript
js实现搜索栏效果
Nov 16 Javascript
vue 左滑删除功能的示例代码
Jan 28 Javascript
vue a标签点击实现赋值方式
Sep 07 Javascript
js中typeof的用法汇总
Dec 12 #Javascript
使用js判断数组中是否包含某一元素(类似于php中的in_array())
Dec 12 #Javascript
解析页面加载与js函数的执行 onload or ready
Dec 12 #Javascript
js实现弹窗插件功能实例代码分享
Dec 12 #Javascript
深入理解JQuery keyUp和keyDown的区别
Dec 12 #Javascript
ff下JQuery无法监听input的keyup事件的解决方法
Dec 12 #Javascript
Jquery each方法跳出循环,并获取返回值(实例讲解)
Dec 12 #Javascript
You might like
jQuery textarea的长度进行验证
2009/05/06 Javascript
ExtJs事件机制基本代码模型和流程解析
2010/10/24 Javascript
jQuery中setTimeout的几种使用方法小结
2013/04/07 Javascript
ExtJs设置GridPanel表格文本垂直居中示例
2013/07/15 Javascript
js 3种归并操作的实例代码
2013/10/30 Javascript
jQuery.event兼容各浏览器的event详细解析
2013/12/18 Javascript
javascript中直接引用Microsoft的COM生成Word
2014/01/20 Javascript
JS+CSS实现带关闭按钮DIV弹出窗口的方法
2015/02/27 Javascript
vue.js入门(3)——详解组件通信
2016/12/02 Javascript
windows下vue.js开发环境搭建教程
2017/03/20 Javascript
jQuery+vue.js实现的九宫格拼图游戏完整实例【附源码下载】
2017/09/12 jQuery
详解多页应用 Webpack4 配置优化与踩坑记录
2018/10/16 Javascript
javascript面向对象三大特征之封装实例详解
2019/07/24 Javascript
JavaScript回调函数callback用法解析
2020/01/14 Javascript
通过javascript实现扫雷游戏代码实例
2020/02/09 Javascript
jQuery实现二级导航菜单的示例
2020/09/30 jQuery
基于js实现的图片拖拽排序源码实例
2020/11/04 Javascript
[49:27]LGD vs OG 2018国际邀请赛小组赛BO2 第二场 8.16
2018/08/17 DOTA
Python中for循环详解
2014/01/17 Python
Python的string模块中的Template类字符串模板用法
2016/06/27 Python
Python实现读取文件最后n行的方法
2017/02/23 Python
python3+PyQt5实现自定义分数滑块部件
2018/04/24 Python
Flask之flask-script模块使用
2018/07/26 Python
Pytorch中的variable, tensor与numpy相互转化的方法
2019/10/10 Python
python怎么自定义捕获错误
2020/06/29 Python
matplotlib之多边形选区(PolygonSelector)的使用
2021/02/24 Python
css3隔行变换色实现示例
2014/02/19 HTML / CSS
html5 canvas-1.canvas介绍(hello canvas)
2013/01/07 HTML / CSS
幼儿园教师个人反思
2014/01/30 职场文书
学习十八届四中全会精神思想汇报
2014/10/23 职场文书
房屋分割离婚协议书范本
2014/12/01 职场文书
个人事迹材料怎么写
2014/12/30 职场文书
2016年五四青年节校园广播稿
2015/12/17 职场文书
先进基层党组织事迹材料2016
2016/02/29 职场文书
详解Js模块化的作用原理和方案
2021/04/29 Javascript
mybatis 解决从列名到属性名的自动映射失败问题
2021/06/30 Java/Android