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 相关文章推荐
替代window.event.srcElement效果的可兼容性的函数
Dec 18 Javascript
javascript通过class来获取元素实现代码
Feb 20 Javascript
jquery mobile页面跳转后样式丢失js失效的解决方法
Sep 06 Javascript
jquery中EasyUI使用技巧小结
Feb 10 Javascript
JavaScript常用标签和方法总结
Sep 01 Javascript
多个js毫秒倒计时同时进行效果
Jan 05 Javascript
jquery实现图片切换代码
Oct 13 Javascript
微信小程序 利用css实现遮罩效果实例详解
Jan 21 Javascript
jQuery插件echarts设置折线图中折线线条颜色和折线点颜色的方法
Mar 03 Javascript
AngularJS 限定$scope的范围实例详解
Jun 23 Javascript
Mint UI实现A-Z字母排序的城市选择列表
Dec 28 Javascript
vue滚动tab跟随切换效果
Jun 29 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
对盗链说再见...
2006/10/09 PHP
php中time()和mktime()方法的区别
2013/09/28 PHP
Yii2中datetime类的使用
2016/12/17 PHP
关于php支持的协议与封装协议总结(推荐)
2017/11/17 PHP
CentOS7.0下安装PHP5.6.30服务的教程详解
2018/09/29 PHP
PHP的JSON封装、转变及输出操作示例
2019/09/27 PHP
讨论javascript(一)工厂方式 js面象对象的定义方法
2009/12/15 Javascript
jQuery 文本框得失焦点的简单实例
2014/02/19 Javascript
Node.js(安装,启动,测试)
2014/06/09 Javascript
JS获取地址栏参数的两种方法(简单实用)
2016/06/14 Javascript
浅谈js数据类型判断与数组判断
2016/08/29 Javascript
详解vue表单验证组件 v-verify-plugin
2017/04/19 Javascript
微信小程序 wx.request方法的异步封装实例详解
2017/05/18 Javascript
Node.js环境下Koa2添加travis ci持续集成工具的方法
2017/06/19 Javascript
使用DataTable插件实现异步加载数据
2017/11/19 Javascript
JavaScript 面向对象基础简单示例
2019/10/02 Javascript
基于vue实现探探滑动组件功能
2020/05/29 Javascript
解决vue动态下拉菜单 有数据未反应的问题
2020/08/06 Javascript
python使用KNN算法手写体识别
2018/02/01 Python
python中pip的安装与使用教程
2018/08/10 Python
Python设计模式之原型模式实例详解
2019/01/18 Python
Python实现带下标索引的遍历操作示例
2019/05/30 Python
python实现最大优先队列
2019/08/29 Python
Python如何在bool函数中取值
2020/09/21 Python
简单掌握CSS3将文字描边及填充文字颜色的方法
2016/03/07 HTML / CSS
CSS3 制作绽放的莲花采用效果叠加实现
2013/01/31 HTML / CSS
MyHeritage美国:家族史研究和DNA测试的领先服务
2019/05/27 全球购物
.NET程序员的数据库面试题
2012/10/10 面试题
Linux机考试题
2015/10/16 面试题
大学生的自我鉴定范文
2014/01/21 职场文书
医疗纠纷协议书
2014/04/16 职场文书
爱国演讲稿400字
2014/05/07 职场文书
医药销售自荐书
2014/05/29 职场文书
大学生团支书竞选稿
2015/11/21 职场文书
Python的代理类实现,控制访问和修改属性的权限你都了解吗
2022/03/21 Python
python神经网络 使用Keras构建RNN训练
2022/05/04 Python