【原】[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="查看余額"/>

一點經驗談,希望給遇到過的童鞋帶來幫助,如果大家有更好的意見,歡迎留言討論~

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM