JavaScript 如何检测URL是否已经成功复制到剪贴板?
时间: 2024-10-04 17:04:58 浏览: 7
JavaScript 可以通过监听 `copy` 和 `paste` 事件以及 `document.execCommand` 方法来检测 URL 是否已成功复制到剪贴板。以下是一个简单的示例:
```javascript
function copyToClipboard(url) {
try {
const textarea = document.createElement('textarea');
textarea.value = url;
textarea.style.position = 'fixed';
textarea.style.left = '-9999px'; // 移动到屏幕外
document.body.appendChild(textarea);
textarea.select();
document.execCommand('copy'); // 使用浏览器API复制文本
document.body.removeChild(textarea); // 删除临时元素
return true; // 返回成功标志
} catch (err) {
console.error('Copy to clipboard failed', err);
return false;
}
}
// 检测复制状态
const copied = copyToClipboard('http://example.com');
// 监听 paste 事件并检查是否有刚刚复制的内容
window.addEventListener('paste', function(e) {
if (e.clipboardData && e.clipboardData.types.includes('text/plain')) {
const pastedText = e.clipboardData.getData('text/plain');
console.log('Pasted:', pastedText);
if (pastedText === 'http://example.com') {
console.log('URL successfully copied');
} else {
console.log('Copied URL does not match expected value');
}
}
}, { passive: true });