Browse Source

优化 code 复制功能,以兼容非安全域下复制失败的问题

修复 Code 组件非安全域复制失败问题
pull/1359/head
贤心 1 year ago committed by GitHub
parent
commit
dfeb34aeb1
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
  1. 32
      src/modules/code.js

32
src/modules/code.js

@ -104,19 +104,27 @@ layui.define(['lay', 'util', 'element', 'form'], function(exports){
className: 'file-b',
title: ['复制代码'],
event: function(el, type){
typeof options.onCopy === 'function' ? options.onCopy(finalCode) : function(){
var text = util.unescape(finalCode);
try {
navigator.clipboard.writeText(text).then(function(){
layer.msg('已复制', {icon: 1});
});
} catch(e) {
var textarea = document.createElement('textarea');
textarea.value = text;
textarea.style.position = 'absolute';
textarea.style.opacity = '0';
document.body.appendChild(textarea);
textarea.select();
try {
navigator.clipboard.writeText(util.unescape(finalCode)).then(function(){
layer.msg('已复制', {
icon: 1
});
});
} catch(e) {
layer.msg('复制失败', {
icon: 2
});
document.execCommand('copy');
layer.msg('已复制', {icon: 1});
} catch(err) {
layer.msg('复制失败', {icon: 2});
}
}();
textarea.remove();
}
typeof options.onCopy === 'function' && options.onCopy(text);
}
}
};
@ -369,4 +377,4 @@ layui.define(['lay', 'util', 'element', 'form'], function(exports){
// 若为源码版,则自动加载该组件依赖的 css 文件
if(!layui['layui.all']){
layui.addcss('modules/code.css?v=3', 'skincodecss');
}
}

Loading…
Cancel
Save