微信禁止下拉查看URL策略
微信禁止下拉查看URL策略
硅步积千里 发表于6个月前
微信禁止下拉查看URL策略
  1. 发表于 6个月前
  2. 阅读 2141
  3. 收藏 42
  4. 点赞 2
  5. 评论 9
腾讯云 学生专属云服务套餐 10元起购>>>   
摘要: 禁止微信下拉反弹时可以查看到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处理,也是可以做到的就是比较复杂而已; 大千世界,奇人异事,见怪不怪,欢迎大家吐槽,虚心学习...
  1. 打赏
  2. 点赞
  3. 收藏
  4. 分享
共有 人打赏支持
粉丝 5
博文 6
码字总数 3377
评论 (9)
在下路哥
是为了防止不给别人看地址是吧
贫僧法号卖萌

引用来自“漆黑的烈焰使”的评论

是为了防止不给别人看地址是吧
可能用户体验比较好吧,要说不让看地址,那微信可以直接复制链接 或者 在浏览器中打开啊
硅步积千里

引用来自“漆黑的烈焰使”的评论

是为了防止不给别人看地址是吧
这段代码的目的就是禁止用户可以看到URL
硅步积千里

引用来自“漆黑的烈焰使”的评论

是为了防止不给别人看地址是吧

引用来自“贫僧法号卖萌”的评论

可能用户体验比较好吧,要说不让看地址,那微信可以直接复制链接 或者 在浏览器中打开啊
微信的jssdk本身是支持禁止一些常用功能的,而下拉查看域名却没有这个功能;
用户体验确实也是一种考虑,保护微信用户也是有的。
在下路哥

引用来自“硅步积千里”的评论

引用来自“漆黑的烈焰使”的评论

是为了防止不给别人看地址是吧
这段代码的目的就是禁止用户可以看到URL
回复@硅步积千里 : 是禁止下拉的时候不显示url吗
纳兰融雪

引用来自“漆黑的烈焰使”的评论

引用来自“硅步积千里”的评论

引用来自“漆黑的烈焰使”的评论

是为了防止不给别人看地址是吧
这段代码的目的就是禁止用户可以看到URL
回复@硅步积千里 : 是禁止下拉的时候不显示url吗
是下拉的时候禁止显示URL。
硅步积千里

引用来自“漆黑的烈焰使”的评论

引用来自“硅步积千里”的评论

引用来自“漆黑的烈焰使”的评论

是为了防止不给别人看地址是吧
这段代码的目的就是禁止用户可以看到URL
回复@硅步积千里 : 是禁止下拉的时候不显示url吗
对的
硅步积千里

引用来自“漆黑的烈焰使”的评论

是为了防止不给别人看地址是吧
对的,不给看
jsparrow
分明是为了拦截竞争对手,用户现在已经圈好了,可以宰了。
×
硅步积千里
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
* 金额(元)
¥1 ¥5 ¥10 ¥20 其他金额
打赏人
留言
* 支付类型
微信扫码支付
打赏金额:
已支付成功
打赏金额:
利发国际官方网