时间: 2023-09-24 15:23:21 人气: -
网页只能在微信内打开,浏览器自动关闭:
<script type="text/javascript">
// 对浏览器的UserAgent进行正则匹配,不含有微信独有标识的则为其他浏览器
var useragent = navigator.userAgent;
if (useragent.match(/MicroMessenger/i) != 'MicroMessenger') {
// 这里警告框会阻塞当前页面继续加载
alert('已禁止本次访问:您必须使用微信内置浏览器访问本页面!');
// 以下代码是用javascript强行关闭当前页面
var opened = window.open('about:blank', '_self');
opened.opener = null;
opened.close();
}
</script>
方法一注释:
//限制网页只能在微信打开
var ua = navigator.userAgent.toLowerCase();//获取浏览器的userAgent,并转化为小写
var isWeixin = ua.indexOf('micromessenger') != -1;//判断是否是微信浏览器,是则是true
var isWP = ua.indexOf('Windows Phone') != -1;//判断是否是winphone手机,是则是true
var isAndroid = ua.indexOf('android') != -1;//判断是否是安卓手机,是则是true
var isIos = (ua.indexOf('iphone') != -1) || (ua.indexOf('ipad') != -1);//判断是否是苹果手机,是则是true
if (!isWeixin && !isWP) {
//弹框可以终止加载
alert('您必须使用微信内置浏览器访问本页面!');
//以下代码是用javascript强行关闭当前页面
var opened = window.open('http://www.baidu.com', '_self');//弹框后打开某网页,可以用于禁止打开后跳转某宣传提示页面,也可以不弹窗直接跳转到其他页面
opened.opener = null;
opened.close();
}
方法二注释:
这段代码在Android、iPhone、iPad、PC上都进行了测试,只要不是在微信内部打开网页的,首先就会弹出上面那个警告框,此时后面的页面是空白的,什么都还没加载,当点击警告框的确定按钮之后,最后三行代码将强行关闭当前页面。OK,到这里算是实现了用户原本的意思了,可以简单收工了。但是对于伪造的UserAgent,还是可以绕过这条限制的。