编辑器代码块前端加上复制按钮

发布期:2024-11-12 | 来源处:本站 | 编辑者:站长助手 | 浏览量:0
12
11
2024

编辑器代码块前端加上复制按钮

网站使用百度编辑器,为代码块添加一个"复制代码"按钮,并实现点击按钮后,将代码块的内容复制到剪贴板中。

下面这段代码的作用是,为网页中的代码块添加一个复制按钮,方便复制代码片段。

var codeBlocks = document.querySelectorAll('pre');
codeBlocks.forEach(function(codeBlock) {
  var copyButton = document.createElement('text');
  copyButton.className = 'copy';
  copyButton.textContent = '复制代码';


  // 创建包裹代码块和按钮的容器元素
  var container = document.createElement('div');
  container.className = 'code-container';

  // 将按钮添加到容器元素内
  container.appendChild(copyButton);

  // 将容器元素插入到代码块之前
  codeBlock.parentNode.insertBefore(container, codeBlock);

  // 设置容器元素样式,使其定位为相对定位(position: relative)
  container.style.position = 'relative';

  // 设置复制按钮样式,使其绝对定位于容器元素的右上角
  copyButton.style.position = 'absolute';
  copyButton.style.top = '8px';
  copyButton.style.right = '10px';

  copyButton.addEventListener('click', function() {
    // 获取代码块的文本内容
    var code = codeBlock.textContent;

    // 创建一个临时的textarea元素,并将代码块的内容设置为其值
    var textarea = document.createElement('textarea');
    textarea.value = code;

    // 将textarea元素追加到body中
    document.body.appendChild(textarea);

    // 选中textarea中的文本
    textarea.select();

    // 执行复制操作
    document.execCommand('copy');

    // 移除临时的textarea元素
    document.body.removeChild(textarea);

    // 修改复制按钮文本为“已复制”
    this.textContent = '复制成功';
  });
});


可以把这段代码加入独立建的JS文件里,例如:建个copy.js文件,也可以直接加到使用的网页代码里。


用于设置复制按钮和代码块的样式。具体样式如下:

.code-wrapper 类选择器用于设置包裹代码块的容器元素的样式。在这里设置了相对定位(position: relative)。

.code-block 类选择器用于设置代码块的样式。在这里设置了相对定位(position: relative)。

.copy 类选择器用于设置复制按钮的样式。具体样式如下:

font-size:设置字体大小为 13px。

transition:设置颜色变化的过渡效果为 0.1秒。

color:设置按钮的颜色为带透明度的灰色(hsla(0, 0%, 54.9%, 0.8))。

border:去掉按钮的边框。

border-radius:设置按钮的圆角为4px。

cursor:设置鼠标悬停在按钮上时的样式为指针。

z-index:将复制按钮的层级置于顶层,确保按钮显示在其他内容之上。


下面对CSS文件代码:

.code-wrapper {
  position: relative;
}

.code-block {
  position: relative;
}

.copy {
  font-size: 13px;
  transition: color 0.1s;
  color: hsla(0, 0%, 54.9%, 0.8);
  border: none;
  border-radius: 4px;
  cursor: pointer;
  z-index: 1; 
}


可以把这段代码加入独立建的CSS文件里,例如:建个copy.css文件,也可以直接加到使用的网页代码里。

把上面的两种代码,放在需要添加的网页底部 </body> 之前插入js、css文件代码。





TAG 标签:

网站优化知识

推荐类似信息
热线(微信同号):
137-6042-7131
在线客服:
售前
售前
售前
售后
微信图标
联系微信:
微信联系二维码
欢迎留言,我们及时与您沟通!
为您公司定制,最符合您公司的官方网站!

搭建网站定制网站,将获得全宝鑫公司,设计师免费为您设计
创意LOGO(商标),和设计您满意的名片

网店托管服务流程:拍摄产品、美工处理、上传网店、
版面设计、资料优化,按年托管!

工作日 9:00-18:00 等您联系咨询!(微信同号)137-6042-7131
留言说明您需要的服务!

您需要的服务?(可选填)


QQ咨询