代码块高亮可复制显示js插件highlight.js+clipboard.js整合


Posted in Javascript onFebruary 15, 2021

主要从两个方面入手了:

1.高亮显示/换行

2.复制代码按钮

这两方面都有现成的插件。

代码高亮插件——highlight.js

1.下载highlight的js文件。

https://highlightjs.org/

点击get version按钮进入语言选择

代码块高亮可复制显示js插件highlight.js+clipboard.js整合

勾选常用语言,通常common就足够用了。

代码块高亮可复制显示js插件highlight.js+clipboard.js整合

点击download,下载,解压,里面会有js文件和css文件。

js文件决定哪些部分高亮,css决定代码颜色

2.在解压后的文件里找到一个highlight.pack.js文件,在使用时导入这个js文件。

<script src="js/jquery-3.1.1.js"></script> 
<script src="js/highlight.pack.js"></script>

3.打开里面的styles文件,里面有很多的css文件。这些文件可以更改你的展示代码的css样式,包括高亮的颜色和背景色(主题色)。

在使用时想使用那种样式只需要导入这个样式的css文件即可。看不懂这些英文都代表的什么样式?这个网址有各个css文件的效果展示:https://highlightjs.org/static/demo/

这里我选择了一个dark.css文件:

<link rel="stylesheet" type="text/css" href="css/dark.css" rel="external nofollow" />

导入js文件和css文件后然后就可以使用了。

在使用时,一定要将你要展示的代码包在<pre><code></code></pre>标签里!!!

如果你的代码里包含标签,记得将标签的"<"换成"<",把">"换成">"

复制插件——clipboard.js

        一开始想直接使用execCommand实现复制,代码如下。结果复制到的内容没有换行空格等相关的格式,且有兼容性问题,在找了大量插件的过程中采用了现成的复制插件clipboard.js,能够较方便快捷的实现功能。

<script type="text/javascript">
function copyLink(){
var e = document.getElementById("copy");
e.select(); // 选择对象
document.execCommand("Copy"); // 执行浏览器复制命令
alert("复制链接成功!");
}
</script>

clipboard.js 可以实现纯 JS 的从浏览器复制文本到系统剪贴板的功能。

使用过程中前端浏览器提示了 Clipboard is not defined

一开始以为是未定义或者源码错误,找了半天发现是引入js文件时路径有错误(今后在使用插件过程中如果有未定义的问题,一定要F12调试看一下有没有404错误)

1. 下载 clipboard.js。clipboard.js 下载地址: https://github.com/zenorocha/clipboard.js

2.引入插件

下载下来的文件clipboard.js-master\clipboard.js-master\demo中可以看到示例,可直接使用

以下是复制id=copyCode 的div使用实例:

1)引入js文件

<script src="${ctx }/styles/js/clipboard.min.js" type="text/javascript" ></script>

2)实例化clipboard对象

<script>
var clipboard = new ClipboardJS('.btn');
clipboard.on('success', function(e) {
   console.log(e);
});
clipboard.on('error', function(e) {
console.log(e);
});
</script>

3)定义复制的按钮跟内容(注:此处需要给触发复制时间的按钮添加两个属性,data-clipboard-action 及 data-clipboard-target,data-clipboard-target的属性值为目标文本的 id 值)

<div id="copyCode">hello</div>
<button class="btn" data-clipboard-action="copy" data-clipboard-target="#copyCode">Copy</button>

data-clipboard-target 值也可以是标签,但是如果有多个标签,会失效,注意。

两个插件使用过程中没有冲突,可以较好糅合。

Javascript 相关文章推荐
javascript 放大镜效果js组件 qsoft.PopBigImage.v0.35 加入了chrome支持
Apr 07 Javascript
关于hashchangebroker和statehashable的补充文档
Aug 08 Javascript
jQuery多级弹出菜单插件ZoneMenu
Dec 18 Javascript
JS中常用的输出方式(五种)
Jun 12 Javascript
jquery popupDialog 使用 加载jsp页面的方法
Oct 25 Javascript
在vue.js中抽出公共代码的方法示例
Jun 08 Javascript
JavaScript高阶函数_动力节点Java学院整理
Jun 28 Javascript
说说AngularJS中的$parse和$eval的用法
Sep 14 Javascript
vue 自定义 select内置组件
Apr 10 Javascript
angular 内存溢出的问题解决
Jul 12 Javascript
使用JavaScript实现node.js中的path.join方法
Aug 12 Javascript
vue组件库的在线主题编辑器的实现思路
Apr 03 Javascript
node.js 基于 STMP 协议和 EWS 协议发送邮件
Feb 14 #Javascript
如何在 Vue 中使用 JSX
Feb 14 #Vue.js
Vue单页面应用中实现Markdown渲染
Feb 14 #Vue.js
vue仿携程轮播图效果(滑动轮播,下方高度自适应)
Feb 11 #Vue.js
详解ES6实现类的私有变量的几种写法
Feb 10 #Javascript
微信小程序实现点赞业务
Feb 10 #Javascript
JS获取一个字符串中指定字符串第n次出现的位置
Feb 10 #Javascript
You might like
10个对初学者非常有用的PHP技巧
2016/04/06 PHP
php类的自动加载操作实例详解
2016/09/28 PHP
php中file_get_contents()函数用法实例
2019/02/21 PHP
php数组遍历类与用法示例
2019/05/24 PHP
PHP实现常用排序算法的方法
2020/02/05 PHP
PHP设计模式之 策略模式Strategy详解【对象行为型】
2020/05/01 PHP
js兼容标准的表格变色效果
2008/06/28 Javascript
js查错流程归纳
2012/05/04 Javascript
得到form下的所有的input的js代码
2013/11/07 Javascript
javascript实现日期格式转换
2014/12/16 Javascript
轻松学习jQuery插件EasyUI EasyUI创建树形网络(1)
2015/11/30 Javascript
基于jquery实现省市联动特效
2015/12/17 Javascript
基于javascript实现仿百度输入框自动匹配功能
2016/01/03 Javascript
jQuery tagsinput在h5邮件客户端中应用详解
2016/09/26 Javascript
jQuery中get方法用法分析
2016/12/07 Javascript
JS点击图片弹出文件选择框并覆盖原图功能的实现代码
2017/08/25 Javascript
Angularjs 1.3 中的$parse实例代码
2017/09/14 Javascript
JS实现table表格固定表头且表头随横向滚动而滚动
2017/10/26 Javascript
小程序双头slider选择器的实现示例
2020/03/31 Javascript
python通过pil模块将raw图片转换成png图片的方法
2015/03/16 Python
十条建议帮你提高Python编程效率
2016/02/16 Python
Django使用Celery异步任务队列的使用
2018/03/13 Python
Python cookbook(字符串与文本)针对任意多的分隔符拆分字符串操作示例
2018/04/19 Python
python文件拆分与重组实例
2018/12/10 Python
Desigual英国官网:在线购买原创服装
2018/03/09 全球购物
英国儿童鞋和靴子:Start-Rite
2019/05/06 全球购物
毕业生个人求职信范文分享
2014/01/05 职场文书
人事部经理岗位职责
2014/03/07 职场文书
手术室护士节演讲稿
2014/08/27 职场文书
中秋节国旗下演讲稿
2014/09/05 职场文书
助学感谢信范文
2015/01/21 职场文书
毕业论文致谢怎么写
2015/05/14 职场文书
推广普通话主题班会
2015/08/17 职场文书
三年级作文之趣事作文
2019/11/04 职场文书
go语言-在mac下brew升级golang
2021/04/25 Golang
Python使用pandas导入csv文件内容的示例代码
2022/12/24 Python