export const copySafari = (text) => { // 获取 input let input = document.getElementById("copy-input"); if (!input) { // input 不能用 CSS 隐藏,必须在页面内存在。 input = document.createElement("input"); input.id = "copy-input"; input.style.position = "absolute"; input.style.left = "-1000px"; input.style.zIndex = "-1000"; document.body.appendChild(input); } // 让 input 选中一个字符,无所谓那个字符 input.value = "NOTHING"; input.setSelectionRange(0, 1); input.focus(); // 复制触发 document.addEventListener("copy", function copyCall(e) { e.preventDefault(); e.clipboardData.setData("text/html", text); e.clipboardData.setData("text/plain", "1"); document.removeEventListener("copy", copyCall); }); document.execCommand("copy"); };
CSS 元素遁形术
25 min read