0

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

2016-09-29 提问
4 个回答
1
Node.addEventListener('contextmenu', function(e){
    e.preventDefault();
});
0

这个靠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事件发生的时候阻止默认事件, 由于是长按判断, 就加个定时器.

0

试试

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

该答案已被忽略,原因:

撰写答案

你可能感兴趣的

推广链接