当前位置: 首页博文详情
Ueditor代码高亮
宁夏
2019年5月2日
【
代码高亮 】
804 阅读
1.在需要代码高亮处引入文件ueditor自带的第三方代码高亮插件
<link rel="stylesheet" href="/static/plugin/ueditor/third-party/SyntaxHighlighter/shCoreDefault.css"> <script type="text/javascript" src="/static/plugin/ueditor/third-party/SyntaxHighlighter/shCore.js"></script>
2.添加js代码
<script type="text/javascript"> SyntaxHighlighter.all(); </script>
3.修改shCore.js,添加复制代码和语言显示工具栏
var className = classes.join(' '); var codeType = className.substr(19).toUpperCase(); html = '<div id="' + getHighlighterId(this.id) + '" class="' + classes.join(' ') + '">' + (this.getParam('toolbar') ? sh.toolbar.getHtml(this) : '') + '<table border="0" cellpadding="0" cellspacing="0" class="s-table">' + this.getTitleHtml(this.getParam('title')) + '<tbody>' + '<tr>' + (gutter ? '<td class="gutter">' + this.getLineNumbersHtml(code) + '</td>' : '') + '<td class="code" id="code">' + '<div class="container">' + html + '</div>' + '</td>' + '</tr>' + '<tr>' + '<td>' + '<div id="tool-bar">' + '<div title="' + codeType + '" class="code show">' + codeType + '</div>' + '<div id="copy-btn" title="复制代码" class="code copy">Copy</div>' + '</div>' + '</td>' + '</tr>' + '</table>' + '</div>' ;
4.添加新增工具栏样式
.s-table { position: relative !important; } .code.copy { background: #353535 !important; color: #fff !important; padding: 2px 10px !important; cursor: pointer !important; border-radius: 15px !important; border: 1px solid #525252 !important; margin-left: 5px !important; float: left !important; transition-property: border-color, background-color, color; transition-duration: .3s; transition-timing-function: ease-in; } .code.copy:hover { background: #000 !important; color: #bbb !important; border: 1px solid #353535 !important; } .code.show { background: #353535 !important; color: #fff !important; padding: 2px 10px !important; cursor: pointer !important; border-radius: 15px !important; border: 1px solid #525252 !important; float: left !important; transition-property: border-color, background-color, color; transition-duration: .3s; transition-timing-function: ease-in; } .code.show:hover { background: #000 !important; color: #bbb !important; border: 1px solid #333333 !important; }
5.复制功能实现
// 点击复制代码 $(document).on('click', '#copy-btn', function () { var t = $(this).parent().parent().parent().prev().find(".container")[0].innerText; // "非法空格"替换 var Text = t.replace(/ /g, ' '); copyText(Text); $('table #copy-btn').text('Copy'); $(this).text('Copied!'); }); /** * 复制的方法 * @param { String } Text 复制的内容 */ function copyText(Text) { var code_input = document.createElement('textarea'); code_input.value = Text; document.body.appendChild(code_input); code_input.select(); // 选择对象 document.execCommand("Copy"); // 执行浏览器复制命令 code_input.style.display = 'none'; }
至此DIY完毕。
效果如下图:
上一篇: 没有了
下一篇: 没有了