微信浏览器如何阻止长按菜单?

现在有个需求。。是模拟微信语音交互的
可是长按有个菜单,是显示的“在浏览器中打开”
请问这个能屏蔽掉吗?

阅读 10.9k
评论
    4 个回答
    • 3
    • 新人请关照
    Node.addEventListener('contextmenu', function(e){
        e.preventDefault();
    });

      这个靠CSS好像没法解决. 用JS吧. 以下是一个案例:

      <a href="#"></a>
      <a href="#" id="pointer"></a>
      <style>
      a {
          display: block;
          width: 200px;
          height: 200px;
          background: #000;
      }
      a:last-of-type {
          background: #ff0000;
      }
      </style>
      <script>
      var t;
      var pointer = document.querySelector('#pointer');
      var cancelTimeout = function() {
          if(t) {
              clearTimeout(t);
              t = null;
          }
      };
      pointer.addEventListener('touchstart', function(e) {
          t = setTimeout(function() {
              alert('2s!');
              cancelTimeout();
          }, 2000);
          e.preventDefault();
          return false;
      });
      pointer.addEventListener('touchend', cancelTimeout);
      pointer.addEventListener('touchcancel', cancelTimeout);
      </script>
      

      touchstart事件发生的时候阻止默认事件, 由于是长按判断, 就加个定时器.

        • 581

        试试

        -webkit-user-select: none;
        user-select: none;
        -webkit-touch-callout: none;

          该答案已被忽略,原因:

            撰写回答

            登录后参与交流、获取后续更新提醒