微信禁止下拉查看URL的处理方法

网友投稿 505 2023-03-28


微信禁止下拉查看URL的处理方法

场景:

微信下拉时可以查看到URL,本身是微信的一种安全策略之一,也是一种用户交互友好的体验;

效果原理:

微信下拉弹性效果其实是浏览器本身的一种特性,重点就是scroll值的一种体现;

处理策略:

1、直接禁止mobile端的touchmove事件;

这种策略一般适用页面只有一屏不需要下拉情况下使用;

var touch1 = function(){

document.querySelector(‘body‘).addEventListener(‘touchmove‘, function (e) {

e.preventDefault();

});

}

弊端:对于大小不同的屏要考虑到内容一屏全部显示,不然2+屏的内容就没有办法看了;

2、禁止touchmove同时判断scroll的位置是否到达顶部;

考虑到下拉时滚动条是否到达顶部 <= 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 || document.body.scrollTop;

if(top <= 0){

document.body.scrollTop = 0;

}

}

}

弊端:会存在下拉URL闪屏的现象

总结:

可以考虑以上三种策略结合来使用会更好;也有些人把touchmove禁掉后自己模拟touchmove处理,也是可以做到的就是比较复杂而已;

以上所述是给大家介绍的微信禁止下拉查看URL的处理方法,希望对大家有所帮助,如果大家有任何疑问请给我留言,会及时回复


版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:Java常用HASH算法总结【经典实例】
下一篇:Hadoop组件简介
相关文章

 发表评论

暂时没有评论,来抢沙发吧~