{
title:"渠道连接",
key:"channelUrl",
minWidth: 250,
align: "center",
render: (h, params) => {
return h("div",[
h(
"span",
params.row.channelUrl
),
h(
"Button",
{
props: {
type: "primary",
size: "small",
},
on: {
click: () => {
//这里就是封装好的js代码
const copyToClipboard = str => {
const el = document.createElement('textarea'); // Create a <textarea> element
el.value = str; // Set its value to the string that you want copied
el.setAttribute('readonly', ''); // Make it readonly to be tamper-proof
el.style.position = 'absolute';
el.style.left = '-9999px'; // Move outside the screen to make it invisible
document.body.appendChild(el); // Append the <textarea> element to the HTML document
const selected =
document.getSelection().rangeCount > 0 // Check if there is any content selected previously
? document.getSelection().getRangeAt(0) // Store selection if found
: false; // Mark as false to know no selection existed before
el.select(); // Select the <textarea> content
document.execCommand('copy'); // Copy - only works as a result of a user action (e.g. click events)
document.body.removeChild(el); // Remove the <textarea> element
if (selected) { // If a selection existed before copying
document.getSelection().removeAllRanges(); // Unselect everything on the HTML document
document.getSelection().addRange(selected); // Restore the original selection
}
};
copyToClipboard(params.row.channelUrl)
}
}
},
"复制"
),
])
}
},
上面是定义好的一个方法 不管在哪里 都是通用的 此时是结合iview框架使用的 你可以单独提出来这个js
这里会存在一个兼容性 如果在h5页面的话 则需要加一个判断,其他不变
var a = document.execCommand('copy'); // Copy - only works as a result of a user action (e.g. click events)
if (!a){
el.select();
el.setSelectionRange(0, el.value.length), document.execCommand('Copy');// 执行浏览器复制命令
}