怎么为网站代码块pre标签增加一个复制代码按钮代码
发表于:2025-02-04 作者:千家信息网编辑
千家信息网最后更新 2025年02月04日,怎么为网站代码块pre标签增加一个复制代码按钮代码,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。参考其他比较专业的博客系统,都在代码
千家信息网最后更新 2025年02月04日怎么为网站代码块pre标签增加一个复制代码按钮代码
怎么为网站代码块pre标签增加一个复制代码按钮代码,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。
参考其他比较专业的博客系统,都在代码块上有一个的按钮。用来快速复制整个代码块的代码。于是我也想给我的博客增加一个这个功能。
注:chrome测试通过。其他浏览器未进行测试。
实现思路:
1、在页面加载完成之后,使用js给每个pre标签增加一个按钮""
2、给按钮增加点击事件,点击事件的功能就是块的内容
实现代码:
css部分,btn-pre-copy是pre标签中使用js增加的""按钮。css的作用是让他显示在pre标签的右上角。这里要注意pre标签和按钮中position属性
.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;}
js部分,js部分主要是给pre标签增加按钮和实现拷贝部分,我这里拷贝部分的实现是先实例化一个临时的节点textarea,然后吧pre的内容设置进这个临时节点,然后选中内容进行复制,最后销毁这个节点。具体参考代码。js部分有依赖于jquery
$(function(){ //给每一串代码元素增加节点 let preList = $(".content pre"); for (let pre of preList) { //给每个代码块增加上""按钮 let btn = $(""); btn.prependTo(pre); }});/** * 执行操作 * @param obj */function preCopy(obj) { //执行复制 let btn = $(obj); let pre = btn.parent(); //为了实现复制功能。新增一个临时的textarea节点。使用他来复制内容 let temp = $(""); //避免复制内容时把按钮文字也复制进去。先临时置空 btn.text(""); temp.text(pre.text()); temp.appendTo(pre); temp.select(); document.execCommand("Copy"); temp.remove(); //修改按钮名 btn.text("复制成功"); //一定时间后吧按钮名改回来 setTimeout(()=> { btn.text(""); },1500);}
这里在gitee上做了一个简单的demo。demo示例:
关于怎么为网站代码块pre标签增加一个复制代码按钮代码问题的解答就分享到这里了,希望以上内容可以对大家有一定的帮助,如果你还有很多疑惑没有解开,可以关注行业资讯频道了解更多相关知识。
代码
按钮
标签
内容
部分
节点
功能
问题
网站
事件
博客
拷贝
更多
参考
帮助
测试
解答
易行
成功
简单易行
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
为什么转行做软件开发
戴尔服务器m12064
万达金融网络安全吗
戴尔服务器通电无法开机
rgap水稻数据库
机电系统网络安全论文
存储网络技术第二章考试
久久网络技术中心
软件开发代码规范文档
北京小互联网科技公司
要认证的wifi网络安全么
网络安全专业选题
计算机网络技术所学的课程
服务器启用外置显卡
网络安全怎么加强
戴尔服务器虚拟化哪家好
武汉系统软件开发服务费
艾特 网络技术 广州
绝地大逃服务器
保山网络技术服务欢迎来电
软件开发容易入手吗
存储网络技术第二章考试
北京快快网络技术是哪个平台
数据库查询学生总人数代码怎么写
外卖配送管理系统数据库设计
dns服务器验证
oracle数据库优点
杭州软件开发公司收费
手机怎么玩mc模组服务器
绝地大逃服务器