js判断是否在微信或QQ中

之前用网上现成的代码发现有很多浏览器被判别成QQ,像这样:

function is_weixn_qq(){
var ua = navigator.userAgent.toLowerCase();
if(ua.match(/MicroMessenger/i)=="micromessenger") {
return "weixin";
} else if (ua.match(/QQ/i) == "qq") {
return "QQ";
    }
return false;
}  

原因是一些手机浏览器navigator信息中会包含qqbrowser字符,因此被错判为QQ环境,通过分析不同环境下的navigator信息,微信和QQ环境下会包含如下的特征字符串:

MicroMessenger/xxx
qq/xxx
(xxx)疑似是版本号?

我们将原来代码中的正则表达式改为下面这样就行了:

if(ua.match(/MicroMessenger\/[0-9]/i)){
    return "weixin";
}

if(ua.match(/QQ\/[0-9]/i)){
    return "QQ";
}

扩展:为什么浏览器navigator中会出现其他浏览器的标识呢?
原因是以前不同的浏览器对特性的支持情况不同,因此在程序编写的时候开发人员会通过判断浏览器的类型,来决定网页要不要显示相关特性。而随着浏览器的发展,浏览器支持的特性越来越全,因此,为了告诉以前的网页“我是支持这些特性的”,浏览器开发者会在navigator字段添加其他浏览器的标签,从而避过页面开发人员的检测。有点像两边不断防御,不断破解的感觉,导致现在网上一些老的代码没法用,只能根据当前的实际情况自己编写代码。

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
H5 分享微信QQ 功能是指在 H5 网页实现分享内容到微信QQ 的功能。当用户在浏览 H5 网页时,点击分享按钮,可以将当前网页的链接或自定义的内容分享到微信QQ 平台。 H5 分享微信QQ 功能的实现可以通过调用相关的 JavaScript API 来完成。首先,我们需要获取用户的微信QQ 客户端是否安装,可以通过浏览器的 User-Agent 来进行判断。如果用户已安装了微信QQ 客户端,我们可以进行下一步的分享操作。然后,我们使用相应的 API,调用微信QQ 的分享接口,将需要分享的内容进行设置,例如标题、描述、图标或图片等。最后,调用分享接口,将内容分享到微信QQ 平台。 在实现 H5 分享微信QQ 功能时,需要注意以下几点。首先,分享的内容需要经过用户的授权,需要遵循用户的隐私保护原则。其次,分享的内容应具有吸引力,例如精美的图片、有趣的描述等,以吸引更多用户进行分享。另外,为了提升用户体验,我们可以在分享完成后给予用户适当的反馈,例如弹出一个提示框表示分享成功。 总结来说,H5 分享微信QQ 功能是一种在 H5 网页实现将内容分享到微信QQ 的功能。通过调用相应的 API,我们可以判断用户是否安装了微信QQ 客户端,并将需要分享的内容设置好后,调用相关的分享接口进行分享操作。实现这一功能需要注意保护用户隐私,设计有吸引力的分享内容,并提供分享成功的反馈。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值