先上效果图:
为了用户体验更佳,对于公众号,手机号,物流单号,等需要一键复制而不是让用户一个一个的去选择。
demo链接:
http://download.csdn.net/download/vlilyv/9970325
github下载地址
https://github.com/vlily/share/blob/master/%E4%B8%80%E9%94%AE%E5%A4%8D%E5%88%B6%E5%85%BC%E5%AE%B9%E8%8B%B9%E6%9E%9C%E6%89%8B%E6%9C%BA.html
html:
<p class="cash_num">测试:<input style="border: none;display: inline-block;" type="text" readonly="" id="clip_num" value="公众号wander_yun"><span style="font-size:0.21739rem;background: #6399ae;color: #f4d345;font-weight: bold;padding: 0.05435rem;" id="clip_button" onClick="copyNum()">点击复制</span></p>
js:
// 思路:要想复制到剪贴板,必须先选中这段文字。
function copyNum(){var NumClip=document.getElementById("clip_num");var NValue=NumClip.value;var valueLength = NValue.length;selectText(NumClip, 0, valueLength);if(document.execCommand('copy', false, null)){document.execCommand('copy', false, null)// 执行浏览器复制命令console.log("已复制,赶紧分享给朋友吧");}else{console.log("不兼容");}}
// input自带的select()方法在苹果端无法进行选择,所以需要自己去写一个类似的方法
// 选择文本。createTextRange(setSelectionRange)是input方法
function selectText(textbox, startIndex, stopIndex) {if(textbox.createTextRange) {//ievar range = textbox.createTextRange();range.collapse(true);range.moveStart('character', startIndex);//起始光标range.moveEnd('character', stopIndex - startIndex);//结束光标range.select();//不兼容苹果}else{//firefox/chrometextbox.setSelectionRange(startIndex, stopIndex);textbox.focus();}
}
有问题可下载demo查看。还有问题请关注公众号(里面有我微信),公众号在博客名字里。
兼容性补充:
在线测试:http://www.wanderyun.com/demo/oneCopy.html
移动端:
安卓手机:微信(chrome)和几个手机浏览器都可以用。
苹果手机:微信里面和sarafi浏览器里也都可以,
但是在pc上sarafi版本必须在10.2以上,其他浏览器可以。哈哈,我这个以前都测过,今天特意又去测了一下,也有其他的方法,大家百度都有。看需求吧。