【原】[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="查看余额"/>
一点经验谈,希望给遇到过的童鞋带来帮助,如果大家有更好的意见,欢迎留言讨论~
作者:白树
出处:http://peunzhang.cnblogs.com/
您觉得本文不错,可打赏博主,或点击右下角【好文要顶】支持博主。

很多人在看的文章
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· .NET周刊【3月第1期 2025-03-02】
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· [AI/GPT/综述] AI Agent的设计模式综述