【原】[webkit移动开发笔记]之禁止触发系统默认菜单

在手机webkit浏览器中,用户在某一些按钮上长按3秒钟后,会弹出一个系统的列表,ios和android各自展现不一样,列表可以有复制或在在新窗口打开的等操作,这种体验对于按钮来说是不需要的,按钮上是绑定事件,有特殊功能,而这里系统把它当做一个链接的意义。查看了代码,原来是一个a标签,链接地址为空。

<a href="#" class="btn">查看余额</a>

找了资料后,ios平台有个解决办法

可以通过控制当前元素的-webkit-touch-callout的样式属性为none;属性来禁止触发系统的菜单

a{-webkit-touch-callout:none}

这里补充-webkit-touch-callout:none 功能,测试结果如下:

1.ios 长按时不触发系统菜单

2.ios 和 android 长按时不触发下载图片菜单

 

对于ios,我们可以使用-webkit-touch-callout:none,那么如何如何禁止 android 系统默认菜单呢?

实践中,发现在android2.x系统中设置a标签的href属性为 javascript:void(0) ,即链接属性为空,可以禁止系统默认菜单

<a href="javascript:void(0);" class="btn">查看余额</a>

而对于部分android4.x系统,这种做法又失效了,android机器真是各种疯啊...

后来在 Web前端业界传说中氛围最好群——鬼懿IT 寻求帮助

要使用a标签目前还是找不到最优的解决办法,如果把a标签用 button 或者 input button 来替换的确可以解决该问题,但是没有a标签被点击时产生的半透明灰色背景效果,用户体验一般

<button class="btn">查看余额</button>
或者
<input type="button" class="btn" value="查看余额"/>

一点经验谈,希望给遇到过的童鞋带来帮助,如果大家有更好的意见,欢迎留言讨论~

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值