文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

怎么为网站代码块pre标签增加一个复制代码按钮代码

2023-06-25 16:26

关注

怎么为网站代码块pre标签增加一个复制代码按钮代码,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。

参考其他比较专业的博客系统,都在代码块上有一个的按钮。用来快速复制整个代码块的代码。于是我也想给我的博客增加一个这个功能。

注:chrome测试通过。其他浏览器未进行测试。

实现思路:

在页面加载完成之后,使用js给每个pre标签增加一个按钮“”

给按钮增加点击事件,点击事件的功能就是块的内容

实现代码:

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 = $("<span class=\"btn-pre-copy\" onclick='preCopy(this)'></span>");        btn.prependTo(pre);    }});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);}

这里在gitee上做了一个简单的demo。demo示例:

怎么为网站代码块pre标签增加一个复制代码按钮代码

关于怎么为网站代码块pre标签增加一个复制代码按钮代码问题的解答就分享到这里了,希望以上内容可以对大家有一定的帮助,如果你还有很多疑惑没有解开,可以关注编程网行业资讯频道了解更多相关知识。

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     807人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     351人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     314人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     433人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     221人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯