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 相关文章推荐
firebug的一个有趣现象介绍
Nov 30 Javascript
详解javascript跨浏览器事件处理程序
Mar 27 Javascript
原生js三级联动的简单实现代码
Jun 07 Javascript
AngularJS之依赖注入模拟实现
Aug 19 Javascript
Javascript中document.referrer隐藏来源的方法
Jan 16 Javascript
Vue.js 2.0窥探之Virtual DOM到底是什么?
Feb 10 Javascript
jQuery简易时光轴实现方法示例
Mar 13 Javascript
AngularJS中table表格基本操作示例
Oct 10 Javascript
bootstrap时间插件daterangepicker使用详解
Oct 19 Javascript
Ionic学习日记实现验证码倒计时
Feb 08 Javascript
vue计算属性+vue中class与style绑定(推荐)
Mar 30 Javascript
JavaScript实现放大镜效果代码示例
Apr 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
php 数学运算验证码实现代码
2009/10/11 PHP
php中全局变量global的使用演示代码
2011/05/18 PHP
php+ajax实现图片文件上传功能实例
2014/06/17 PHP
php使用curl并发减少后端访问时间的方法分析
2016/05/12 PHP
一个很简单的jquery+xml+ajax的无刷新树结构(无css,后台是c#)
2010/06/02 Javascript
jquery对象和javascript对象即DOM对象相互转换
2014/08/07 Javascript
微信分享的标题、缩略图、连接及描述设置方法
2014/10/14 Javascript
javascript的函数作用域
2014/11/12 Javascript
JavaScript jQuery 中定义数组与操作及jquery数组操作
2015/12/18 Javascript
多功能jQuery树插件zTree实现权限列表简单实例
2016/07/12 Javascript
bootstrap模态框跳转到当前模板页面 框消失了而背景存在问题的解决方法
2020/11/30 Javascript
JS中from 表单序列化提交的代码
2017/01/20 Javascript
详解React Native顶|底部导航使用小技巧
2017/09/14 Javascript
Babel 入门教程学习笔记
2018/06/13 Javascript
ES6 Class中实现私有属性的一些方法总结
2019/07/08 Javascript
微信公众号平台接口开发 获取微信服务器IP地址方法解析
2019/08/14 Javascript
javascript严格模式详解(含严格模式与非严格模式的区别)
2019/11/12 Javascript
jquery实现上传图片功能
2020/06/29 jQuery
[03:30]完美盛典趣味短片 CSGO2019年度名场面
2019/12/07 DOTA
Python正则表达式匹配和提取IP地址
2019/06/06 Python
python单例模式的多种实现方法
2019/07/26 Python
如何在Python对Excel进行读取
2020/06/04 Python
解决tensorflow模型压缩的问题_踩坑无数,总算搞定
2021/03/02 Python
CSS3实现的文本3D效果附图
2014/09/03 HTML / CSS
详解CSS透明opacity和IE各版本透明度滤镜filter的最准确用法
2016/12/20 HTML / CSS
Prototype是怎么扩展DOM的
2014/10/01 面试题
人力资源经理自我评价
2014/01/04 职场文书
挂职学习心得体会
2014/09/09 职场文书
关于迟到的检讨书
2015/05/06 职场文书
国王的演讲观后感
2015/06/03 职场文书
植物园观后感
2015/06/11 职场文书
2015-2016年小学教导工作总结
2015/07/21 职场文书
房屋买卖定金协议书
2016/03/21 职场文书
golang import自定义包方式
2021/04/29 Golang
前端JS获取URL参数的4种方法总结
2022/04/05 Javascript
如何用H5实现好玩的2048小游戏
2022/07/23 HTML / CSS