复制文本到粘贴板 (vue3)(兼容ios)
- // 点击复制到剪贴板
- const copyToClipboard = (content)=> {
- if (window.clipboardData) {
- window.clipboardData.setData("text", content);
- } else {
- (function (content) {
- document.oncopy = function (e) {
- e.clipboardData.setData("text", content);
- e.preventDefault();
- document.oncopy = null;
- };
- })(content);
- document.execCommand("Copy");
- }
- }
- // 点击复制到剪贴板 (兼容ios)
- const copyToClipboard = (content)=> {
- let oInput = document.createElement("input");
- oInput.value = content;
- document.body.appendChild(oInput);
- oInput.select(); // 选择oInput中所有文本对象
- if (navigator.userAgent.match(/(iPhone|iPod|iPad);?/i)) {//兼容ios
- if (!document.execCommand("Copy")) {
- oInput.setSelectionRange(0, oInput.value.length);
- }
- }
- document.execCommand("Copy"); // 执行浏览器复制命令
- document.body.removeChild(oInput);
- return new Promise((resolve,reject)=>{
- if (document.execCommand("Copy")) {
- resolve(content);
- }else{
- reject(content);
- }
- })
- }
注释:setSelectionRange()方法是作用在input元素上的;这个方法可以为当前元素内的文本设置备选中范围;inputElement.setSelectionRange(selectionStart, selectionEnd, [optional] selectionDirection);