遇到的问题

微信上要实现一个点击复制兑换码的功能,上网找了很久,找到了zero clipboard插件只能在PC端用,手机端并没有比较好的解决方案,无奈苦逼找产品商量,改为长按复制。

解决方案

微信默认就是支持文本长按选择,所以只需要调整字体样式后,几乎不需要写什么代码,这份任务就完成了,但是。。。情况并不如我所想。
找了半天并没有发现什么异样,但是就是长按无法复制。
解决思路
1.新写一个页面,在微信端浏览,发现可以长按复制(排除微信端不能长按复制的猜想)
2.删除原页面的脚本文件,发现可以仍然不可以长按复制(排除脚本影响)
3.删除原页面公共css,发现可以长按复制(确定公共css影响)
4.逐一排查,发现一个css声明 -webkit-user-select:none;

关于user-select

以下内容摘自css参考手册

语法

user-select:none | text | all | element
默认值:text
适用于:除替换元素外的所有元素
继承性:无
动画性:否
计算值:指定值

取值

none:文本不能被选择
text:可以选择文本
all:当所有内容作为一个整体时可以被选择。如果双击或者在上下文上点击子元素,那么被选择的部分将是以该子元素向上回溯的最高祖先元素。
element:可以选择文本,但选择范围受元素边界的约束

说明

设置或检索是否允许用户选中文本。
IE6-9不支持该属性,但支持使用标签属性 onselectstart=”return false;” 来达到 user-select:none 的效果;Safari和Chrome也支持该标签属性;
直到Opera12.5仍然不支持该属性,但和IE6-9一样,也支持使用私有的标签属性 unselectable=”on” 来达到 user-select:none 的效果;unselectable 的另一个值是 off;
除Chrome和Safari外,在其它浏览器中,如果将文本设置为 -ms-user-select:none;,则用户将无法在该文本块中开始选择文本。不过,如果用户在页面的其他区域开始选择文本,则用户仍然可以继续选择将文本设置为 -ms-user-select:none; 的区域文本;
对应的脚本特性为userSelect。

兼容性

自我检讨

本人并没有做过多少禁用选择方面的需求,所以对这些东西有时就是一知半解,没有深入其中进行试验与理解,特此写了博文告诫自己。

手机端长按文字复制功能相关推荐

  1. Axure8.0 -手机端长文字滚动演示

    完成如下效果: 模拟手机端长文滚动显示. 用动态面板可以简单实现此功能,创建动态面板后,在里面添加多行字符串,超出动态面板的范围. 然后给动态面板添加拖动事件,在拖动动态面板时,垂直方向移动文字,并且 ...

  2. 手机端实现点击复制功能

    function Copy(str){var save = function(e){e.clipboardData.setData('text/plain', str);e.preventDefaul ...

  3. css手机端长摁背景变色,css动画,如何实现点击/长按时背景色切换的动画效果(背景从中间向两边延展)...

    animation + keyframes 简易样例如下: 背景渐变动画 div { width:300px; height:48px; background:#eee; text-align:cen ...

  4. 手机端input输入文字500ms之后查询

    首先是input的绑定,这个input是我写的组件,忽略它,但是可以看到,双向绑定了search <Inputer v-model="search" type="s ...

  5. 微信小程序 商品报价表格 兼容PC端、手机端

    1.固定表头.表格行高由内容撑开 2.图片自适应居中.图片预览 3.筛选条件置顶.显示所选的筛选分类 4.触底加载下一页 5.表格文字可复制 6.支持手机横屏.竖屏切换.横屏时隐藏底部 tabbar ...

  6. fiddler拦截手机端请求

    1. 电脑端开启wifi.用测试手机连接该wifi.同时确保该电脑上安装有fiddler. 2. 手机端长按该wifi,做如下修改,主机名即为开启wifi的电脑的IP地址. 3. 打开fiddler, ...

  7. 怎么把手机计算机开启语音,怎么把文字转换成语音?电脑端和手机端的转换攻略都在这了...

    我们在日常的工作中,总是需要看文件啊,看报表啊之类的内容,有时候会觉得眼睛很不舒服不想要看文字内容了.但是工作又不能够往后推怎么办?我们可以试试将文字转成语言,直接用听的就行了. 一.手机端: 1.使 ...

  8. 怎么把手机计算机开启语音,怎么把文字转换成语音,电脑端和手机端的方法,都在这里了...

    原标题:怎么把文字转换成语音,电脑端和手机端的方法,都在这里了 平时在生活中,是不是有时候会没空可以看文件,看新闻,又或者眼睛有点酸,不想看手机电脑?又或者是需要配音,怕自己的声音不好听不好意思配?这 ...

  9. JS手机端移动端长按longtap事件

    JS手机端移动端长按longtap事件移动端并没有所谓的longtap事件,即长按事件.但是,有时候会用到,只能借助touchstart.touchmove.touchend三个事件以及延迟setTi ...

最新文章

  1. operate XML file (Open,Insert)
  2. Swoole实现私聊群聊
  3. PX4/Pixhawk---uORB深入理解和应用
  4. python调参工作都是干啥的_Python中Gradient Boosting Machine(GBM)调参方法详解
  5. react typescript 子组件调用父组件
  6. 制图折断线_学不好CAD怎么办?老师傅教你CAD制图规范,新手也能秒懂
  7. Spring----getBean的四种用法
  8. python中pass的使用_Python中pass语句的作用
  9. 黄海造船周身流动的信息化血液
  10. IE中getElementById的Bug
  11. java实现对称加密—数据库密码加解密
  12. 目标识别—SSD网络详解
  13. Win11 如何跳过微软注册界面
  14. 港股互联网券商系统建设
  15. Nefu 锐格实验9
  16. uniapp,小程序,实现签名功能
  17. “68道 Redis+168道 MySQL”精品面试题(带解析),你背废了吗?
  18. Promise请求并发
  19. 互联网晚报 | 11月23日 星期二 | 格力电器宣布实行双休工作制;知乎月活跃用户首次突破1亿大关;微博入局英雄联盟...
  20. 那些年门户网站开发应该遵循的原则

热门文章

  1. 高精度定位的3级精度分类
  2. uniCloud杂文
  3. 实验七 集成功率放大电路
  4. 校园宿舍网的搭建及简单原理分析
  5. 推荐系统常用评价指标
  6. 计算机网络要点(第二章)
  7. 浏览器控制台显示 Failed to load resource: the server responded with a status of 404 ()
  8. kd-tree : k近邻查询和范围查询
  9. vscode和visualstudio的区别?
  10. 生鲜卖菜小程序怎么做