• 技术文章 >微信小程序 >微信开发

    微信禁止下拉查看URL如何处理

    小云云小云云2018-01-29 17:18:55原创1356
    微信下拉时可以查看到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闪屏的现象

    相关推荐:

    node.js中http模块和url模块简介

    详解修改Laravel中url()的根地址

    php如何解析url中的中文字符

    以上就是微信禁止下拉查看URL如何处理的详细内容,更多请关注php中文网其它相关文章!

    声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。
    专题推荐:处理 如何 查看
    上一篇:php实现微信跳一跳小游戏 下一篇:微信授权后用户头像保存到服务器实现方法
    VIP课程(WEB全栈开发)

    相关文章推荐

    • 【腾讯云】年中优惠,「专享618元」优惠券!• NodeJs开发微信公众号微信事件交互实例代码• 有关争夺的课程推荐10篇• 微信公众开发使用消息接的方法• 微信支付开发全网发布• C#开发微信门户及应用(1)--开始使用微信接口
    1/1

    PHP中文网