JS判断是否在微信浏览器打开的简单实例(推荐)


Posted in Javascript onAugust 24, 2016

最近做很多HTML5的项目,很多页面会通过微信微博等SNS分享出去。在分享页面上提供公司APP的下载。但是在很多应用的浏览器中,点击下载链接无法下载应用。那么针对这些浏览器我们需要给用户提示从safari或者系统自带的浏览器打开分享页面。通过js就可以判断当前页面是在什么浏览器打开的。

以下是一段示例代码,注释中表明了通过JS如何判断是否在微信浏览器打开,是否在QQ空间浏览器,是否在新浪微博打开。当然可以做得更完善一点,再加上判断是在移动设备打开还是在PC端浏览器打开的,更加细分一点,可以判断是在安卓系统的浏览器打开的还是IOS系统浏览器打开的。

if (browser.versions.mobile) {//判断是否是移动设备打开。browser代码在下面
    var ua = navigator.userAgent.toLowerCase();//获取判断用的对象
    if (ua.match(/MicroMessenger/i) == "micromessenger") {
        //在微信中打开
    }
    if (ua.match(/WeiBo/i) == "weibo") {
        //在新浪微博客户端打开
    }
    if (ua.match(/QQ/i) == "qq") {
        //在QQ空间打开
    }
    if (browser.versions.ios) {
        //是否在IOS浏览器打开
    } 
    if(browser.versions.android){
        //是否在安卓浏览器打开
    }
} else {
    //否则就是PC浏览器打开
}

再附上browser的代码,通过以下方法可以判断很多浏览器。包括判断IE浏览器,Opera浏览器,苹果浏览器,谷歌浏览器,火狐浏览器等。

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.*/), //是否为移动终端
      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, //是否为iPhone或者QQHD浏览器
      iPad: u.indexOf('iPad') > -1, //是否iPad
      webApp: u.indexOf('Safari') == -1 //是否web应该程序,没有头部与底部
    };
  }(),
  language: (navigator.browserLanguage || navigator.language).toLowerCase()
}

以上这篇JS判断是否在微信浏览器打开的简单实例(推荐)就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
javascript利用初始化数据装配模版的实现代码
Nov 17 Javascript
通过JavaScript控制字体大小的代码
Oct 04 Javascript
JQuery的$命名冲突详细解析
Dec 28 Javascript
jQuery实现图片走马灯效果的原理分析
Jan 16 Javascript
浅谈jQuery before和insertBefore的区别
Dec 04 Javascript
Bootstrap 3 进度条的实现
Feb 22 Javascript
js仿淘宝评价评分功能
Feb 28 Javascript
Vuex之理解Store的用法
Apr 19 Javascript
原生JS实现瀑布流插件
Feb 06 Javascript
基于vue.js中关于下拉框的值默认及绑定问题
Aug 22 Javascript
js实现的格式化数字和金额功能简单示例
Jul 30 Javascript
解决layui laydate 时间控件一闪而过的问题
Sep 28 Javascript
jquery实现ajax提交表单信息的简单方法(推荐)
Aug 24 #Javascript
AngularJS下对数组的对比分析
Aug 24 #Javascript
AngularJS  $modal弹出框实例代码
Aug 24 #Javascript
AngularJS中比较两个数组是否相同
Aug 24 #Javascript
javascript深拷贝(deepClone)详解
Aug 24 #Javascript
js实现无缝循环滚动
Jun 23 #Javascript
jquery实现网页定位导航
Aug 23 #Javascript
You might like
第三节 定义一个类 [3]
2006/10/09 PHP
发款php蜘蛛统计插件只要有mysql就可用
2010/10/12 PHP
php二维数组排序方法(array_multisort usort)
2013/12/25 PHP
php+ajax导入大数据时产生的问题处理
2014/06/11 PHP
php查询mysql大量数据造成内存不足的解决方法
2015/03/04 PHP
Zend Framework入门教程之Zend_Mail用法示例
2016/12/08 PHP
laravel csrf排除路由,禁止,关闭指定路由的例子
2019/10/21 PHP
javascript实现图片切换的幻灯片效果源代码
2012/12/12 Javascript
js添加千分位的实现代码(超简单)
2016/08/01 Javascript
JS button按钮实现submit按钮提交效果
2016/11/01 Javascript
jQuery插件HighCharts绘制2D柱状图、折线图的组合双轴图效果示例【附demo源码下载】
2017/03/09 Javascript
javascript 日期相减-在线教程(附代码)
2017/08/17 Javascript
Node.js学习之地址解析模块URL的使用详解
2017/09/28 Javascript
Vue SPA单页应用首屏优化实践
2018/06/28 Javascript
vue组件开发props验证的实现
2019/02/12 Javascript
小程序数据通信方法大全(推荐)
2019/04/15 Javascript
关于vue3.0中的this.$router.replace({ path: '/'})刷新无效果问题
2020/01/16 Javascript
Vue.js仿Select下拉框效果
2020/02/18 Javascript
JavaScript语法约定和程序调试原理解析
2020/11/03 Javascript
小程序角标的添加及绑定购物车数量进行实时更新的实现代码
2020/12/07 Javascript
Python面向对象编程基础解析(一)
2017/10/26 Python
详解Python核心编程中的浅拷贝与深拷贝
2018/01/07 Python
Python 2/3下处理cjk编码的zip文件的方法
2019/04/26 Python
Python入门Anaconda和Pycharm的安装和配置详解
2019/07/16 Python
利用python实现AR教程
2019/11/20 Python
Python基于jieba, wordcloud库生成中文词云
2020/05/13 Python
python 中的命名空间,你真的了解吗?
2020/08/19 Python
python包的导入方式总结
2021/03/02 Python
全球速卖通法国在线交易平台:AliExpress法国
2017/07/07 全球购物
农民工工资支付承诺函
2014/03/31 职场文书
2015年文员个人工作总结
2015/04/09 职场文书
2015年统战工作总结
2015/05/19 职场文书
2015年四年级班主任工作总结
2015/10/22 职场文书
2015年终个人政治思想工作总结
2015/11/24 职场文书
CSS极坐标的实例代码
2021/06/03 HTML / CSS
TV动画《八十龟酱观察日记》第四季宣传PV公布
2022/04/06 日漫