【前端】禁用移动浏览器长按默认事件

转载:H5移动端禁止长按弹出系统菜单"选择复制",“在浏览器打开”

移动端长按事件自定义的时候会和各种浏览器自带的长按默认事件冲突,所以禁止掉浏览器自带的长按事件

*{
	-webkit-touch-callout:none;/*系统默认菜单被禁用*/
	-webkit-user-select:none;/*webkit浏览器*/
	-khtml-user-select:none;/*早起浏览器*/
	-moz-user-select:none;/*火狐浏览器*/
	-ms-user-select:none;/*IE浏览器*/
	user-select:none;/*用户是否能够选中文本*/
 }
作者:天涯的海风
链接:https://www.jianshu.com/p/dd7d77c9a921(就是顶部链接)
来源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

以上是禁止选中文本,增加上述css后会出现一下问题:
1.据说ios的input框会无法聚焦(没有试验过),解决如下:

input {
    -webkit-user-select: auto;
}

2.据说安卓的微信浏览器不起作用(安卓的微信浏览器起不起作用我不清楚,但是安卓华为的自带浏览器确定是不起作用的),解决如下:

$dom.bind('contextmenu',   //此写法为我使用的
       function (e) {
         e.preventDefault();
       });

或者写成:

document.oncontextmenu=function(e){

    e.preventDefault();

};

上述写法并没有解决安卓华为的自带浏览器的长按弹出和选中,但是确实解决了安卓(华为)微信浏览器长按文字的浏览器默认事件,图片仍然会弹出默认事件,所以更改了需求,以后有机会再继续解决这个问题吧~