复制文本的常用方法


方法一: 使用浏览器执行一些预定义document.execCommand

document.execCommand(commandName, showUI, value); 
//commandName:要执行的命令名称,比如 "copy"、"cut"、"paste" 等。
//showUI:一个布尔值,指定是否在执行命令时显示用户界面。通常设置为 false。
//value:执行命令所需的额外参数,根据不同的命令而变化。

这种方法通过创建一个临时的文本区域元素,并将文本设置为其值,然后通过执行 execCommand("copy") 方法将文本复制到剪贴板。最终代码如:

var input = document.getElementById("input");
input.select(); // 选中文本
document.execCommand("copy"); // 执行浏览器复制命令


方法二:使用clipboard.js

<div style="text-align: center;" class="copyNbb" data-clipboard-text="复制的文本" data-clipboard-action="copy">
 </div>
var clipboard = new ClipboardJS('.copyNbb');
      clipboard.on('success', function (e) {
        // 清除文本选中状态
        e.clearSelection();
        // layer.msg("复制成功,打开微信,粘贴搜索");
        $('.block-c').removeClass('hidden');
        $('.block-c').show();
      });
      clipboard.on('error', function (e) {
        console.log('复制失败,请手动复制,粘贴搜索');
      });


方法三: 使用 Clipboard API(推荐)

Clipboard API 是现代浏览器提供的用于复制和粘贴操作的 API。它提供了更强大和灵活的功能,可以访问剪贴板并进行复制操作。以下是使用 Clipboard API 复制文本的示例:

async function copyTextToClipboard(text) {
  try {
    await navigator.clipboard.writeText(text);
    console.log("Text copied to clipboard");
  } catch (err) {
    console.error("Failed to copy text: ", err);
  }
}

// 调用函数并传入要复制的文本
copyTextToClipboard("Hello, world!");
```

请注意,使用 Clipboard API 需要在用户交互事件(例如点击按钮)中调用,以满足浏览器的安全要求。

兼容性和使用方式,检查了浏览器是否支持 navigator.clipboard.writeText 方法,并使用 then 和 catch 来处理异步操作的结果和错误。这种方法更适合在需要兼容性考虑的情况下使用

function copyTextUsingBrowserAPI(text) {
  if (navigator.clipboard && navigator.clipboard.writeText) {
    navigator.clipboard.writeText(text)
      .then(() => {
        console.log("Text copied to clipboard");
      })
      .catch((err) => {
        console.error("Failed to copy text: ", err);
      });
  } else {
    console.error("Clipboard API not supported");
  }
}

// 调用函数并传入要复制的文本
copyTextUsingBrowserAPI("Hello, world!");
```


声明:BenBonBen博客|版权所有,违者必究|如未注明,均为原创

转载:转载请注明原文链接 - 复制文本的常用方法


过去太迟,未来太远,当下最好