JavaScript | 文本复制工具clipboard.js的使用详解(使用clipboard复制ajax请求的数据)
时间:2023年10月14日
/来源:网络
/编辑:佚名
用法1
<!-- 该代码可直接创建HTML文件运行 -->
<meta charset="utf-8" >
<title>target-input</title>
<meta name="viewport" content="width=device-width, initial-scale=1" >
<!-- 1. 定义一些标记 -->
<!-- 2. 设置按钮 -->
<!-- 示例1:复制input元素的value值 -->
<input id="foo" type="text" value="这是input元素的value值" >
<button data-clipboard-action="copy" data-clipboard-target="#foo">点击复制
<!-- 示例2:剪切textarea元素的值 -->
<textarea id="bar">这里的文本可被复制或者剪切
<button data-clipboard-action="cut" data-clipboard-target="#bar">点击剪切文字
<!-- 示例3:复制div元素的值 -->
<div>这是div元素里的文字</div>
<button data-clipboard-action="copy" data-clipboard-target="div">复制来自div的文字
<!-- 示例4:复制button自己设置的值 -->
<button data-clipboard-text="这里的文字将被复制">复制自己的文字
<!-- 3. 引入库文件 -->
<!-- <script src="../dist/clipboard.min.js"></script> -->
<script src="https: cdnjs.cloudflare.com="" ajax="" libs="" clipboard.js="" 2.0.6="" clipboard.min.js"="">
<script>
//4. 实例化clipboard
var clipboard = new ClipboardJS('.btn');
//5. 复制成功的响应事件【按F12控制台可见】
clipboard.on('success', function (e) {
console.log(e);
//打印动作信息(copy或者cut)
console.info('Action:', e.action);
//打印复制的文本
console.info('Text:', e.text);
//打印trigger
console.info('Trigger:', e.trigger);
});
//6. 复制失败的响应事件
clipboard.on('error', function (e) {
console.log(e);
console.error('Action:', e.action);
console.error('Trigger:', e.trigger);
});
</script>
</script src="https:></button data-clipboard-text="这里的文字将被复制"></button data-clipboard-action="copy" data-clipboard-target="div"></button data-clipboard-action="cut" data-clipboard-target="#bar"></textarea id="bar"></button data-clipboard-action="copy" data-clipboard-target="#foo"></input id="foo" type="text" value="这是input元素的value值" ></meta name="viewport" content="width=device-width, initial-scale=1" ></meta charset="utf-8" >
用法2
<!-- 该代码可直接创建HTML文件运行 -->
<meta charset="utf-8" >
<title>function-target</title>
<meta name="viewport" content="width=device-width, initial-scale=1" >
<!-- 1. 基本信息定义 -->
<button>点击复制</button>
<div>这里的内容将被复制</div>
<!-- 2. 引入库文件 -->
<!-- <script src="../dist/clipboard.min.js"></script> -->
<script src="https: cdnjs.cloudflare.com="" ajax="" libs="" clipboard.js="" 2.0.6="" clipboard.min.js"="">
<script>
//3. 实例化clipboard
var clipboard = new ClipboardJS('.btn', {
target: function () {
//获取文档中第一个 <div> 元素:
return document.querySelector('div');
//返回文档中id为copy-btn的元素
//document.querySelector("#copy-btn");
//返回文档中 的第一个元素:
//document.querySelector(".btn");
//返回文档中 的第一个 <p> 元素:
//document.querySelector("p.btn");
//还有更多方法,可自行百度
},
});
//复制成功响应
clipboard.on('success', function (e) {
console.log(e);
});
//复制失败响应
clipboard.on('error', function (e) {
console.log(e);
});
</script>
</script src="https:></meta name="viewport" content="width=device-width, initial-scale=1" ></meta charset="utf-8" >
用法3
<!-- 该代码可直接创建HTML文件运行 -->
<meta charset="utf-8" >
<title>function-text</title>
<meta name="viewport" content="width=device-width, initial-scale=1" >
<!-- 1. 定义基本元素 -->
<button>Copy</button>
<!-- 2. 引入库文件 -->
<!-- <script src="../dist/clipboard.min.js"></script> -->
<script src="https: cdnjs.cloudflare.com="" ajax="" libs="" clipboard.js="" 2.0.6="" clipboard.min.js"="">
<script>
//3. 实例化clipboard
var clipboard = new ClipboardJS('.btn', {
text: function () {
return '这里的文本将被复制';
},
});
//复制成功响应
clipboard.on('success', function (e) {
console.log(e);
});
//复制失败响应
clipboard.on('error', function (e) {
console.log(e);
});
</script>
</script src="https:></meta name="viewport" content="width=device-width, initial-scale=1" ></meta charset="utf-8" >
用法4
//3. 实例化clipboard
var clipboard = new ClipboardJS('.btn', {
text: function () {
//return '这里的文本将被复制';
//
$.ajax({
url: '请求的链接',
type: 'POST',
//POST的数据
data: {
_token: $("input[name='_token']").val(),
id: $("input[name='id']").val(),
},
//异步调用关闭
async: false,
//请求成功:
success: function (result) {
//返回成功的文本
return result.data;
},
//请求出错
error: function (e) {
//弹窗提示
alert(e.message)
}
});
},
});
用法5
//定义复制模块JS代码
const pageCtrl = {
//发送AJAX请求,生成复制的文本,el是传递数据的
_codeGenerator: function (el) {
const $el = $(el);
$.ajax({
url: '请求的URL',
type: 'POST',
data: {
_token: el.data('_token'),
id: el.data('id'),
},
//移步请求一定要关闭(false)
async: false,
success: function (result) {
//可以打印请求后的数据
console.log(result.status);
//返回成功结果
if (result.status === 'success') {
$el.data('result', result.data[0].link);
}
//否则,操作失败,根据具体失败情形提示
else {
//弹窗提示
$.alert(result.msg, '操作失败');
//返回结果不要漏
$el.data('result', "");
}
}
});
},
/* 复制功能*/
_clip: function () {
const _self = this;
const clipboard = new ClipboardJS('.copy-btn', {
text: function (el) {
//构造参数
const $el = $(el);
//设置初始值
$el.data("_token", $("input[name='_token']").val());
$el.data('id', $("input[name='id']").val());
//ajax请求并设置要复制的字符串
_self._codeGenerator($el);
//返回复制结果
return $el.data('result');
}
});
//复制成功后的方法
clipboard.on('success', function (e) {
// console.log(e.text)
$.alert('链接:' + e.text + ' 已复制', '复制成功'
});
//复制失败后的方法
clipboard.on('error', function (e) {
console.log(e);
$.alert('复制失败,请重试!', '复制失败',)
});
},
//初始化方法
init: function () {
this._clip();
}
};
$(function () {
//初始化
pageCtrl.init();
})
<!-- 该代码可直接创建HTML文件运行 -->
<meta charset="utf-8" >
<title>target-input</title>
<meta name="viewport" content="width=device-width, initial-scale=1" >
<!-- 1. 定义一些标记 -->
<!-- 2. 设置按钮 -->
<!-- 示例1:复制input元素的value值 -->
<input id="foo" type="text" value="这是input元素的value值" >
<button data-clipboard-action="copy" data-clipboard-target="#foo">点击复制
<!-- 示例2:剪切textarea元素的值 -->
<textarea id="bar">这里的文本可被复制或者剪切
<button data-clipboard-action="cut" data-clipboard-target="#bar">点击剪切文字
<!-- 示例3:复制div元素的值 -->
<div>这是div元素里的文字</div>
<button data-clipboard-action="copy" data-clipboard-target="div">复制来自div的文字
<!-- 示例4:复制button自己设置的值 -->
<button data-clipboard-text="这里的文字将被复制">复制自己的文字
<!-- 3. 引入库文件 -->
<!-- <script src="../dist/clipboard.min.js"></script> -->
<script src="https: cdnjs.cloudflare.com="" ajax="" libs="" clipboard.js="" 2.0.6="" clipboard.min.js"="">
<script>
//4. 实例化clipboard
var clipboard = new ClipboardJS('.btn');
//5. 复制成功的响应事件【按F12控制台可见】
clipboard.on('success', function (e) {
console.log(e);
//打印动作信息(copy或者cut)
console.info('Action:', e.action);
//打印复制的文本
console.info('Text:', e.text);
//打印trigger
console.info('Trigger:', e.trigger);
});
//6. 复制失败的响应事件
clipboard.on('error', function (e) {
console.log(e);
console.error('Action:', e.action);
console.error('Trigger:', e.trigger);
});
</script>
</script src="https:></button data-clipboard-text="这里的文字将被复制"></button data-clipboard-action="copy" data-clipboard-target="div"></button data-clipboard-action="cut" data-clipboard-target="#bar"></textarea id="bar"></button data-clipboard-action="copy" data-clipboard-target="#foo"></input id="foo" type="text" value="这是input元素的value值" ></meta name="viewport" content="width=device-width, initial-scale=1" ></meta charset="utf-8" >
用法2
<!-- 该代码可直接创建HTML文件运行 -->
<meta charset="utf-8" >
<title>function-target</title>
<meta name="viewport" content="width=device-width, initial-scale=1" >
<!-- 1. 基本信息定义 -->
<button>点击复制</button>
<div>这里的内容将被复制</div>
<!-- 2. 引入库文件 -->
<!-- <script src="../dist/clipboard.min.js"></script> -->
<script src="https: cdnjs.cloudflare.com="" ajax="" libs="" clipboard.js="" 2.0.6="" clipboard.min.js"="">
<script>
//3. 实例化clipboard
var clipboard = new ClipboardJS('.btn', {
target: function () {
//获取文档中第一个 <div> 元素:
return document.querySelector('div');
//返回文档中id为copy-btn的元素
//document.querySelector("#copy-btn");
//返回文档中 的第一个元素:
//document.querySelector(".btn");
//返回文档中 的第一个 <p> 元素:
//document.querySelector("p.btn");
//还有更多方法,可自行百度
},
});
//复制成功响应
clipboard.on('success', function (e) {
console.log(e);
});
//复制失败响应
clipboard.on('error', function (e) {
console.log(e);
});
</script>
</script src="https:></meta name="viewport" content="width=device-width, initial-scale=1" ></meta charset="utf-8" >
用法3
<!-- 该代码可直接创建HTML文件运行 -->
<meta charset="utf-8" >
<title>function-text</title>
<meta name="viewport" content="width=device-width, initial-scale=1" >
<!-- 1. 定义基本元素 -->
<button>Copy</button>
<!-- 2. 引入库文件 -->
<!-- <script src="../dist/clipboard.min.js"></script> -->
<script src="https: cdnjs.cloudflare.com="" ajax="" libs="" clipboard.js="" 2.0.6="" clipboard.min.js"="">
<script>
//3. 实例化clipboard
var clipboard = new ClipboardJS('.btn', {
text: function () {
return '这里的文本将被复制';
},
});
//复制成功响应
clipboard.on('success', function (e) {
console.log(e);
});
//复制失败响应
clipboard.on('error', function (e) {
console.log(e);
});
</script>
</script src="https:></meta name="viewport" content="width=device-width, initial-scale=1" ></meta charset="utf-8" >
用法4
//3. 实例化clipboard
var clipboard = new ClipboardJS('.btn', {
text: function () {
//return '这里的文本将被复制';
//
$.ajax({
url: '请求的链接',
type: 'POST',
//POST的数据
data: {
_token: $("input[name='_token']").val(),
id: $("input[name='id']").val(),
},
//异步调用关闭
async: false,
//请求成功:
success: function (result) {
//返回成功的文本
return result.data;
},
//请求出错
error: function (e) {
//弹窗提示
alert(e.message)
}
});
},
});
用法5
//定义复制模块JS代码
const pageCtrl = {
//发送AJAX请求,生成复制的文本,el是传递数据的
_codeGenerator: function (el) {
const $el = $(el);
$.ajax({
url: '请求的URL',
type: 'POST',
data: {
_token: el.data('_token'),
id: el.data('id'),
},
//移步请求一定要关闭(false)
async: false,
success: function (result) {
//可以打印请求后的数据
console.log(result.status);
//返回成功结果
if (result.status === 'success') {
$el.data('result', result.data[0].link);
}
//否则,操作失败,根据具体失败情形提示
else {
//弹窗提示
$.alert(result.msg, '操作失败');
//返回结果不要漏
$el.data('result', "");
}
}
});
},
/* 复制功能*/
_clip: function () {
const _self = this;
const clipboard = new ClipboardJS('.copy-btn', {
text: function (el) {
//构造参数
const $el = $(el);
//设置初始值
$el.data("_token", $("input[name='_token']").val());
$el.data('id', $("input[name='id']").val());
//ajax请求并设置要复制的字符串
_self._codeGenerator($el);
//返回复制结果
return $el.data('result');
}
});
//复制成功后的方法
clipboard.on('success', function (e) {
// console.log(e.text)
$.alert('链接:' + e.text + ' 已复制', '复制成功'
});
//复制失败后的方法
clipboard.on('error', function (e) {
console.log(e);
$.alert('复制失败,请重试!', '复制失败',)
});
},
//初始化方法
init: function () {
this._clip();
}
};
$(function () {
//初始化
pageCtrl.init();
})
新闻资讯 更多
- 【建站知识】查询nginx日志状态码大于400的请求并打印整行04-03
- 【建站知识】Python中的logger和handler到底是个什么?04-03
- 【建站知识】python3拉勾网爬虫之(您操作太频繁,请稍后访问)04-03
- 【建站知识】xpath 获取meta里的keywords及description的方法04-03
- 【建站知识】python向上取整以50为界04-03
- 【建站知识】scrapy xpath遇见乱码解决04-03
- 【建站知识】scrapy爬取后中文乱码,解决word转为html 时cp1252编码问题04-03
- 【建站知识】scrapy采集—爬取中文乱码,gb2312转为utf-804-03