昨天有个站长找到我说,他想让网站在QQ或者微信中打开时显示复制网址到浏览器打开的提示。这个效果实现很简单,因为不管是QQ还是微信都是使用的腾讯X5浏览内核,不知道什么是腾讯X5浏览内核的请看Android集成腾讯X5浏览内核。其标志是UA标识中带有qqbrowser,这个东西在电脑端的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; }
判断不出来。
在QQ或者微信中存在如下特殊标识,XXX应该是版本号。
MicroMessenger/xxx qq/xxx
正确写法
if(ua.match(/MicroMessenger//[0-9]/i)){ return "weixin"; } if(ua.match(/QQ//[0-9]/i)){ return "QQ"; }
另外,使用微信访问网页时需要注意,alert弹出对话框可能会失效,当刷新当前网页时又是有效的情况。这种情况不用管它,我测试了下,其它的JavaScript代码仍然能正常运行。还有就是微信内置浏览会换成网页,你可能需要如下的代码禁止缓存。
head头部标签
<meta HTTP-EQUIV="pragma" CONTENT="no-cache"> <meta HTTP-EQUIV="Cache-Control" CONTENT="no-cache, must-revalidate"> <meta HTTP-EQUIV="expires" CONTENT="0">
浏览器内部前进后退动作仍然执行js
window.onpageshow = function (e) { if (e.persisted) { window.location.reload(true) } }
原创文章,作者:奋斗,如若转载,请注明出处:https://blog.ytso.com/241543.html