背景:SQL复制功能,复制到编辑器中没有格式,很奇怪的是本地环境复制没有问题,但是发布后线上不行。发布线上后不换行。导致SQL没格式。
解决方法:替换当前复制所采用的方法。换如下方法,便可解决。
/**
* @param {string} val 需要复制的文本
*/
export const CopyTextCommand = (val) => {
const TextareaDom = document.createElement("textarea");
TextareaDom.setAttribute("readonly", "readonly");
TextareaDom.style.width = "0px";
TextareaDom.style.height = "0px";
TextareaDom.style.position = "absolute";
TextareaDom.value = val;
document.body.appendChild(TextareaDom);
TextareaDom.select();
document.execCommand("copy");
document.body.removeChild(TextareaDom);
};
后追其原因,发现此方法用的是textarea,通过textarea的select去选中的内容。而原方法用的是input。百度区别如下,猜测跟这个有关。但是不能解释为什么本地用的input却能保留格式。
image.png