js 实现复制粘贴

<!DOCTYPE html>

<html><head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>点击复制内容移动端全兼容(专治各种移动端浏览器)</title>
<style>
*{
margin:0;
padding:0;
}
body{
background: #fff;
}
button{
width:100px;
height:45px;
}
</style>
</head>
<body>
<button id="copy">点击复制</button>
<script src="https://libs.baidu.com/jquery/2.0.0/jquery.min.js"></script>
<script>
/**
* [点击复制内容移动端全兼容(专治各种移动端浏览器)]
* @author majiang by beijing
* @createtime 2018-11-17
* @blog http://www.love85g.com
*/
;(function($) {
var defaults = {
imgUrl: "",
text: "复制成功",
copyUrl: "",
tipTime: 2000,
copyId: ""
};
$.extend({
copy: function(option) {
var options = $.extend({}, defaults, option);
var URL = options.copyUrl == "" ? window.location.href.split('#')[0] : options.copyUrl;
var cId = options.copyId == "" ? '#copy' : options.copyId;
var IMG = options.imgUrl == "" ? "" : '<img style="width: 22px;" src="' + options.imgUrl + '">';
var tipsHtml = '<div id="share-tips" style="position: fixed;top: 50%;left:50%;background: rgba(0,0,0,.5);border-radius: 4px;margin: 0 auto;color: #fff;z-index: 9999;padding: 5px 10px;font-size: 14px;text-align: center;transform: translate(-50%,-50%);">' + IMG + '<p>' + options.text + '</p></div>';
var u = navigator.userAgent;
var isAndroid = u.indexOf('Android') > -1 || u.indexOf('Adr') > -1;
var isiOS = !!u.match(/\(i[^;]+;( U;)? CPU.+Mac OS X/);
var aEle = document.querySelectorAll(cId);
if (isAndroid || (!isAndroid && !isiOS)) {
$(aEle).each(function() {
var index = $(this).attr("id").split("y")[1];
$('body').append('<textarea id="selector' + index + '" style="position:absolute;top:-9999px;left:-9999px;" readonly>' + URL + '</textarea>');
$(this)[0].onclick = function(event) {
$("#selector" + index).select();
document.execCommand("copy", false, null);
$("body").append(tipsHtml);
setTimeout(function() {
$("#share-tips").remove()
}, options.tipTime)
}
})
}
if (isiOS) {
$(aEle).each(function() {
var index = $(this).attr("id").split("y")[1];
$('body').append('<a id="selector' + index + '" style="position:absolute;top:-9999px;left:-9999px;">' + URL + '</a>');
this.addEventListener('click', function() {
var copyDOM = document.querySelectorAll('#selector' + index);
var range = document.createRange();
range.selectNode(copyDOM[0]);
window.getSelection().removeAllRanges();
window.getSelection().addRange(range);
document.execCommand('copy');
$("body").append(tipsHtml);
setTimeout(function() {
$("#share-tips").remove()
}, options.tipTime)
}, false)
})
}
}
})
}
)(jQuery); </script>
<script>
$.copy({
imgUrl:"success-tips.png", //分享图标地址
text:"复制成功", //分享提示文案
copyUrl:"复制成功", //自定义复制链接地址
tipTime:2000, //分享提示消失时间
copyId:"#copy"//复制按钮id
}); </script> </body>
</html>

js 实现复制粘贴的更多相关文章

  1. js 实现复制粘贴文本过滤(保留文字和图片)

    实现复制粘贴文本过滤(保留文字和图片) demo如下: <head> <meta http-equiv="Content-Type" content=" ...

  2. 通过如何通过js实现复制粘贴功能

    在ie中window.clipboardData(剪切板对象)是可以被获取,所以利用这个方法我们可以实现在IE当中复制粘贴的功能,demo如下! <html> <head> & ...

  3. js实现复制粘贴功能

    在项目中使用到复制粘贴功能,虽然网上有很多大牛封装了很多的插件,但是还是想不去使用插件,就像自己来实现这个功能. 另一篇是禁止复制粘贴 前端er怎样操作剪切复制以及禁止复制+破解等 初步想法: 1. ...

  4. 在html页面通过js实现复制粘贴功能

    前言:要实现这个功能,常用的方式大概分为两类,第一种就是上插件,这个网上有大把,第二种就是直接用几行JS来实现. 这次说第二种实现方式,这方式有很大的局限性,只能用表单元素,并且不能设置disable ...

  5. JS ----实现复制粘贴功能 (剪切板应用clipboardData)

    注意:ie7,与ie8 对网页有个复制的权限,需在“安全”中的“自定义级别”的脚本中设置 clipboardData 对象 提供了对剪贴板的访问. 三个方法 :1.clearData(sDataFor ...

  6. js实现复制粘贴

    项目中经常会遇到点击按钮复制订单号.订单id等内容到粘贴板中的需求.可是通常我们都是用Ctrl + c或右击复制的,别操心,js也是有复制命令的,那就是document.execCommand('co ...

  7. [JavaScript] 怎么使用JS禁止复制粘贴

    1. 将彻底屏蔽鼠标右键,其实是禁止快捷菜单,因为不光右键可以弹出这个菜单,键盘上空格键右边的windows键也可以激活这个快捷菜单 <table border oncontextmenu=re ...

  8. js 实现复制粘贴时注意方法中需要两次点击实现的bug

    方法一:利用ZeroClipboard 详见 :http://www.jb51.net/article/22403.htm 1先引入 <script type="text/javasc ...

  9. js禁止复制粘贴

    1. oncontextmenu="window.event.returnValue=false" 将彻底屏蔽鼠标右键,其实是禁止快捷菜单,因为不光右键可以弹出这个菜单,键盘上空格 ...

随机推荐

  1. .net框架-队列(Queue)

    队列(Queue) 队列代表一个先进先出的集合 队列元素为Object类型 .net框架提供Queue<T>泛型队列类 入队(Enqueue)和出队(Dequeue)是对列的基本操作,入队 ...

  2. 【Python学习】Python3 基础语法

    ==================================================================================================== ...

  3. P4357 [CQOI2016]K远点对

    题意:给定平面中的 \(n\) 个点,求第 \(K\) 远的点对之间的距离,\(n\leq 1e5,K\leq min(100,\frac{n\times (n-1)}{2})\) 题解:kd-tre ...

  4. 洛谷 P1439 【模板】最长公共子序列 题解

    每日一题 day40 打卡 Analysis 因为两个序列都是1~n 的全排列,那么两个序列元素互异且相同,也就是说只是位置不同罢了,那么我们通过一个book数组将A序列的数字在B序列中的位置表示出来 ...

  5. NOIP2015 D1 解题报告

    T1 神奇的幻方 题目描述 幻方是一种很神奇的N*N矩阵:它由数字1,2,3,……,N*N构成,且每行.每列及两条对角线上的数字之和都相同. 当N为奇数时,我们可以通过以下方法构建一个幻方: 首先将1 ...

  6. manjaro (arch) 安装搜狗输入法

    本文通过MetaWeblog自动发布,原文及更新链接:https://extendswind.top/posts/technical/sogou_input_install_in_arch_manja ...

  7. 坑:找到LoadRunner中Recording Options和 Run Time Settings配置选项确实的原因

    在loadrunner安装好后,打开页面查看发现分别的缺失内容如下: 现象: 1. Recording Options 2.Run Time Settings 3.解决 原因是LR是付费的,你的安装包 ...

  8. Note_4.1

    2019/4/1 奇奇怪怪的笔记 多项式除法 问题描述 给定\(n\)次多项式\(A(x)\)和\(m\)次多项式\(B(x)\) 求: \[ A(x)=B(x)*C(x)+R(x) \] 我们要求\ ...

  9. 统计单词Java

    功能0:输出某个英文文本文件中 26 字母出现的频率,由高到低排列,并显示字母出现的百分比,精确到小数点后面两位. 功能1:输出文件中所有不重复的单词,按照出现次数由多到少排列,出现次数同样多的,以字 ...

  10. 关于Lombok的认识及其应用(一)

    目录 1.Lombok的介绍 2.Lombok的安装 3.Lombok实现原理分析 4.Lombok使用方法 4.1.@Data注解 4.2.@Getter/@Setter注解 1.Lombok的介绍 ...