无需插件实现Emlog主题代码块复制按钮

有些EMLOG模板主题里代码块作者是默认没有写复制按钮的,自己鼠标光标滑动数值又太麻烦,这时候我们就可以自己手动添加一个复制代码的按钮

教程开始

1.找到网站目录下的/content/templates/主题文件夹/xxx.js(ps:xxx因为每个作者的命名习惯不一样,选自己主题对应的)

2.在末尾处添加一下添加一下代码

document.addEventListener('DOMContentLoaded', function() {
  // 精准匹配你的代码块:pre.language-php
  const codeBlocks = document.querySelectorAll('pre.language-php');

  codeBlocks.forEach(block => {
    // 跳过已加按钮的代码块
    if (block.querySelector('.code-copy-btn')) return;

    // 创建复制按钮
    const copyBtn = document.createElement('button');
    copyBtn.className = 'code-copy-btn';
    copyBtn.innerText = '复制代码';

    // 绑定复制事件
    copyBtn.addEventListener('click', function() {
      const code = block.innerText.trim();
      const textarea = document.createElement('textarea');
      textarea.value = code;
      document.body.appendChild(textarea);
      textarea.select();
      document.execCommand('copy');
      document.body.removeChild(textarea);

      // 按钮反馈
      copyBtn.innerText = '复制成功';
      setTimeout(() => copyBtn.innerText = '复制代码', 2000);
    });

    // 把按钮加到代码块里
    block.appendChild(copyBtn);
  });
});

3.把第三行中的pre.language-php改成自己代码块名字(理由同1.ps)

4.最后一步,添加下面这段代码到style.css文件里

/* 给代码块加相对定位,让按钮在内部 */
pre.language-php {
  position: relative; /* 关键:按钮以这个代码块为基准定位 */
  padding: 15px; /* 给按钮留空间,避免贴边 */
}

/* 复制按钮样式(适配你的代码块) */
.code-copy-btn {
  position: absolute;
  top: 8px; /* 距离代码块顶部8px */
  right: 8px; /* 距离代码块右侧8px */
  padding: 4px 10px;
  border: none;
  border-radius: 4px;
  background: #007bff;
  color: white;
  cursor: pointer;
  font-size: 12px;
  z-index: 10; /* 确保在代码上面,不被覆盖 */
}
.code-copy-btn:hover {
  background: #0056b3;
}
1 如果你喜欢本站,点击这儿捐赠本站,感谢支持!
2 可能会帮到你: 下载帮助 | 解压密码 | 安装遇到问题
3 本网站部分资源来源于网络,仅供大家学习与参考,请于下载后24小时内删除;
4 若作商业用途,请联系原作者授权,若本站侵犯了您的权益请联系站长
3647472220@qq.com进行删除处理;
5 更多精品资源、互联网交流: 免费交流群
6 如若转载,请注意出处: https://nlmca.cn/jsjc/19.html

0
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2026-1-8 18:57
下一篇 2026-1-9 05:35

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注

验证码