微信(WeChat)是腾讯公司于2011年1月21日推出的一个为智能终端提供即时通讯服务的免费应用程序,由张小龙所带领的腾讯广州研发中心产品团队打造 [2] 。微信支持跨通信运营商、跨操作系统平台通过网络快速发送免费(需消耗少量网络流量)语音短信、视频、图片和文字,同时,也可以使用通过共享流媒体内容的资料和基于位置的社交插件“摇一摇”、“漂流瓶”、“朋友圈”、”公众平台“、”语音记事本“等服务插件。
微信下拉时可以查看到URL,本身是微信的一种安全策略之一,也是一种用户交互友好的体验;本文主要介绍微信禁止下拉查看URL的处理方法,需要的朋友可以参考下,希望能帮助到大家。
效果原理:
微信下拉弹性效果其实是浏览器本身的一种特性,重点就是scroll值的一种体现;
处理策略:
1、直接禁止mobile端的touchmove事件;
这种策略一般适用页面只有一屏不需要下拉情况下使用;
var touch1 = function(){
document.querySelector(‘body‘).addEventListener(‘touchmove‘, function (e) {
e.preventDefault();
});
}
考虑到下拉时滚动条是否到达顶部 <= 10 来禁止touchmove事件,同时考虑存在先上拉再下拉的情况所以监听的touchend事件并计算一次touch事件流中的最高点位置用以判断
var touch2 = function () {
var lastY;//最后一次y坐标点
var betterY;//每次touch最高点
document.querySelector(‘body‘).addEventListener('touchstart', function(event) {
lastY = event.originalEvent.changedTouches[0].clientY;
betterY = lastY;
});
document.querySelector(‘body‘).addEventListener('touchmove', function(event) {
var y = event.originalEvent.changedTouches[0].clientY;
if(y > betterY){
betterY = y;
}
var st = document.body.scrollTop; //滚动条高度
if (y >= lastY && st <= 10) {
lastY = y;
event.preventDefault();
}
lastY = y;
});
document.querySelector(‘body‘).addEventListener('touchend', function(event) {
var y = event.originalEvent.changedTouches[0].clientY;
var st = document.body.scrollTop; //滚动条高度
if(y < betterY && st <= 10){
event.preventDefault();
}
});
}弊端:第一次的touchmove存在漏洞问题,touchmove的过程中也存在漏洞
3、监听scroll的滚动事件,禁止高度<0;
每当滚动条的高度小于0时就重置为0,强制回退顶部位置
var touch3 = function () {
window.onscroll = function () {
var top = document.documentElement.scrollTop 关键词:微信防范下拉查看URL如何处理