手机端长按文字复制功能

原创 2016年06月28日 17:18:43

遇到的问题

微信上要实现一个点击复制兑换码的功能,上网找了很久,找到了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。

兼容性

兼容性

自我检讨

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

版权声明:本文为博主原创文章,未经博主允许不得转载。

移动端的复制按钮,

今天公司让做一个可以在移动端复制某区域的文字,是点击一个按钮达到复制效果,本人比较菜,搞了一下午,由于原生的JS是有提供一个函数来实现这个功能(window.clipboardData),但是很遗憾,...
  • King_flag
  • King_flag
  • 2016年07月28日 18:54
  • 6000

移动端html5页面长按实现高亮全选文本内容的兼容解决方案

最近需要给html5的WebAPP在页面上实现一个复制功能:用户点击长按文本会全选文字并弹出系统“复制”菜单,用户可以点击“复制”进行复制操作,然后粘贴到AppStore搜索对应的应用。之所以不是采用...
  • freshlover
  • freshlover
  • 2014年10月24日 20:16
  • 62334

【html】移动端长按复制

一直以为长按复制有多难 ,想的脑袋都打结了 ,没想到最后
  • u012560190
  • u012560190
  • 2014年07月09日 12:57
  • 182

HTML5对手机页面长按会粘贴复制禁用的解决方法(常用)

一、完全兼容ios和安卓的写法 1、用a标签包起来,在a标签里面加一句代码ontouchstart = "return false;" 二、只兼容ios的写法 *{ -we...
  • js_admin
  • js_admin
  • 2017年05月08日 16:17
  • 3321

一行代码为UILabel添加长按复制功能

一行代码为UILabel添加长按复制功能
  • ShorewB
  • ShorewB
  • 2016年08月07日 15:33
  • 7341

移动端js 点击按钮复制到粘贴

  • 2017年11月08日 13:07
  • 63KB
  • 下载

Clipboard.js : 移动端浏览器实现网页内容复制

 最近在项目中遇到这样一个需求:   点击按钮,将指定的URL复制到剪贴板,然后用户可以粘贴到浏览器(Safari为主)自行打开。   方案一:zeroClipboard.js ...
  • oaa608868
  • oaa608868
  • 2016年12月09日 15:42
  • 6917

JS 实现复制粘贴功能

JS 实现复制粘贴功能目前没有做过多的测试,只是测试了几个手机,介绍:支持情况(1)移动端: chrome(版本 58.0.3029.96 (64-bit))、 猎豹(V6.0.114.14559)、...
  • qq_16559905
  • qq_16559905
  • 2017年05月24日 16:11
  • 2366

clipboard.js 实现移动端和pc端复制到剪贴板功能

感谢以下两个具有帮助性的博客:www.cnblogs.com/yunser/p/7628031.htmlhttp://m.blog.csdn.net/deeplies/article/details/...
  • weixin_39107093
  • weixin_39107093
  • 2017年12月04日 19:06
  • 340

web页面长按复制文本clipboard.js 使用教程

纯JavaScript实现的复制剪切库–clipboard.js clipboard.js 使用纯 JavaScript (无需 Flash)实现了复制浏览器内容到系统剪切板的功能,可以在浏...
  • fjnjxr
  • fjnjxr
  • 2016年12月16日 15:25
  • 1596
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:手机端长按文字复制功能
举报原因:
原因补充:

(最多只允许输入30个字)