标签页间通信 - 播放音乐
利用BroadcastChannel实现标签页间通信播放音乐
Clipboard API
,它允许网页脚本读取和写入用户的剪贴板,这包括了navigator.clipboard
对象和一些相关的异步方法。我们将创建一个函数copyToClipboard
,它接收要复制的文本作为参数,并使用Clipboard API来执行复制操作。
async function copyToClipboard(text) {
try {
// 确保当前环境支持 Clipboard API
if (navigator.clipboard && navigator.clipboard.writeText) {
await navigator.clipboard.writeText(text);
console.log('文本已成功复制到剪贴板');
} else {
// 对于不支持 Clipboard API 的浏览器,可以提示用户或采用其他方法
console.error('当前浏览器不支持 Clipboard API');
}
} catch (err) {
console.error('复制到剪贴板时发生错误:', err);
}
}
接下来,在需要触发复制操作的地方调用copyToClipboard
函数,并传入想要复制的文本。
<button onclick="copyToClipboard('这是要复制的文本')">点击复制</button>
为了提升用户体验,你可以在复制成功后通过修改页面元素或弹出消息来通知用户复制已完成。
async function copyToClipboard(text) {
// ...之前的代码保持不变...
try {
await navigator.clipboard.writeText(text);
console.log('文本已成功复制到剪贴板');
// 可以在这里添加UI反馈,如改变按钮文本或显示提示
document.getElementById('copyButton').innerText = '已复制!';
} catch (err) {
// 错误处理...
}
}
我们可以到 MDN 查看更多关于navigator.clipboard.writeText()
的用法以及其支持的版本。
在使用navigator.clipboard.writeText
之前,需要检查浏览器是否支持该API,navigator.clipboard.writeText
是一个异步操作,因此需要使用await
关键字,并确保它在一个异步上下文中被调用。