JavaScript IndexedDB: ConstraintError — Chiave primaria già presente
Il metodo `objectStore.add()` lancia `ConstraintError` se si tenta di inserire un record con una chiave primaria o un indice unico (`unique: true`) identico a uno già archiviato.
Categoria
Articoli tecnici organizzati per gruppo funzionale.
Il metodo `objectStore.add()` lancia `ConstraintError` se si tenta di inserire un record con una chiave primaria o un indice unico (`unique: true`) identico a uno già archiviato.
L'apertura di un database IndexedDB con `indexedDB.open(dbName, version)` fallisce se la versione passata è strettamente inferiore alla versione già presente sul disco locale del client.
L'accesso a `localStorage` o `sessionStorage` è bloccato dalle impostazioni privacy del browser quando il sito è incorporato in un iframe di terze parti o i cookie di terze parti sono bloccati.
La funzione di decodifica Base64 `atob()` fallisce se la stringa contiene caratteri non appartenenti all'alfabeto Base64, spazi spuri o lunghezza non multipla di 4 byte.
Uno script tenta di accedere a `iframe.contentDocument` o `window.parent` su un frame proveniente da un dominio, protocollo o porta differenti (violazione della Same-Origin Policy dei browser).
Si tenta di inviare messaggi cross-tab tramite `channel.postMessage()` su un canale `BroadcastChannel` che è già stato esplicitamente terminato invocando `.close()`.
La funzione nativa `btoa()` supporta esclusivamente caratteri con codice ASCII a 8 bit (0-255); il passaggio di stringhe Unicode multibyte (es. caratteri accentati o emoji) richiede una conversione preventiva con `TextEncoder`.
L'accesso programmatico agli appunti tramite `navigator.clipboard.writeText()` richiede che il documento abbia il focus attivo e che l'operazione sia scatenata direttamente da un'interazione dell'utente (click o keypress).