【教程】HTML用Jquery为pre标签代码块增加复制代码功能
2023-06-13 09:15:24 时间
代码主要参考自这篇:为网站代码块pre标签增加一个复制代码按钮代码_普通网友的博客-CSDN博客_pre js
但由于博客内未提供完整代码,并且我自己用起来有点小问题,所以这里修改后提供了完整版。
<html lang="en">
<head>
<meta charset="UTF-8">
<title>demo</title>
<script src="http://libs.baidu.com/jquery/2.1.4/jquery.min.js"></script>
<style>
.content{
width: 1000px;
margin: 10px auto;
}
.content pre{
position: relative;
background-color: #f5f5f5;
border: 1px solid #ccc;
border-radius: 4px;
padding: 10px;
}
pre .btn-pre-copy{
-webkit-user-select: none;
-moz-user-select: none;
-ms-user-select: none;
-khtml-user-select: none;
user-select: none;
position: absolute;
top: 10px;
right: 12px;
font-size: 12px;
line-height: 1;
cursor: pointer;
color: hsla(0,0%,54.9%,.8);
transition: color .1s;
}
textarea{
width: 100%;
}
</style>
</head>
<body>
<div class="content">
<pre>
NSArray *levelBinTemplates = rackLevel.binTemplates;
float maxBinHeight = 0;
for (WMBinTemplate2 *binTemplate in levelBinTemplates)
{
float binHeight = binTemplate.height * ratioH;
if (binHeight > maxBinHeight) {
maxBinHeight = binHeight;
}
}
</pre>
<pre>
123
</pre>
</div>
<script>
$(function(){
//给每一串代码元素增加复制代码节点
let preList = $(".content pre");
// for (let pre of preList) {
// //给每个代码块增加上“复制代码”按钮
// let btn = $("<span class=\"btn-pre-copy\" onclick='preCopy(this)'>复制代码</span>");
// btn.prependTo(pre);
// }
preList.each(function(){
let btn = $("<span class=\"btn-pre-copy\" onclick='preCopy(this)'>复制代码</span>");
btn.prependTo($(this));
});
});
/**
* 执行复制代码操作
* @param obj
*/
function preCopy(obj) {
//执行复制
let btn = $(obj);
let pre = btn.parent();
//为了实现复制功能。新增一个临时的textarea节点。使用他来复制内容
let temp = $("<textarea></textarea>");
//避免复制内容时把按钮文字也复制进去。先临时置空
btn.text("");
temp.text(pre.text());
temp.appendTo(pre);
temp.select();
document.execCommand("Copy");
temp.remove();
//修改按钮名
btn.text("复制成功");
//一定时间后吧按钮名改回来
setTimeout(()=> {
btn.text("复制代码");
},1500);
}
</script>
</body>
</html>
相关文章
- jquery ajax步骤,jquery ajax(ajax请求的五个步骤jQuery)
- JQuery安装与下载教程
- JQuery安装与下载教程(efficiency)
- jquery选择器用法_jQuery属性选择器
- 程序员都会的 35 个 jQuery 小技巧详解编程语言
- jQuery Timers 定时插件使用详解编程语言
- jQuery图片切换插件jquery.cycle.js详解编程语言
- 在NodeJS中使用jQuery file upload plugin
- jQuery中文入门指南,翻译加实例,jQuery的起点教程
- JQuery初体验(建议学习jquery)
- 33个优秀的jQuery教程分享(幻灯片、动画菜单)
- 25个非常棒的jQuery滑块插件和教程小结
- 分享20多个很棒的jQuery文件上传插件或教程
- asp.net网站开发中用jquery实现滚动浏览器滚动条加载数据(类似于腾讯微博)
- 精心挑选的15款优秀jQuery本特效插件和教程
- jquery插件制作教程txtHover
- 推荐40个简单的jQuery导航插件和教程(下篇)
- jQuery学习笔记(2)--用jquery实现各种模态提示框代码及项目构架
- 实用的Jquery选项卡TAB示例代码
- 按Enter键触发事件的jquery方法实现代码
- jquery$("#variable")循环改变variable的值示例
- jquery序列化form表单使用ajax提交后处理返回的json数据
- 自己使用jquery写的一个无缝滚动的插件
- 使用jQuery设置disabled属性与移除disabled属性