方法一: 使用浏览器执行一些预定义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!"); ```