Skip to content

Permissions

Clipboard access requires user permission and a secure context (HTTPS or localhost).

// Clipboard access requires:
// - HTTPS or localhost
// - User interaction (click, keypress, touch)
// - Permission: 'clipboard-write' (auto-granted)
// - Permission: 'clipboard-read' (requires explicit grant)
async function checkClipboardPermission() {
const result = await navigator.permissions.query({
name: 'clipboard-read'
});
console.log('Clipboard read permission:', result.state);
// 'granted', 'denied', or 'prompt'
}
async function copyToClipboard(text) {
try {
await navigator.clipboard.writeText(text);
} catch (err) {
// Fallback for older browsers or denied permission
const textarea = document.createElement('textarea');
textarea.value = text;
document.body.appendChild(textarea);
textarea.select();
document.execCommand('copy');
document.body.removeChild(textarea);
}
}
  • Write permission is auto-granted (with user interaction)
  • Read permission requires explicit user grant
  • Fall back to document.execCommand('copy') for older browsers
  • Always handle permission errors gracefully