--- title: IDBObjectStore.openKeyCursor() slug: Web/API/IDBObjectStore/openKeyCursor tags: - API - IDBObjectStore - IndexedDB - Méthode - Reference translation_of: Web/API/IDBObjectStore/openKeyCursor ---
La méthode openKeyCursor()
, rattachée à l'interface {{domxref("IDBObjectStore")}}, renvoie un objet {{domxref("IDBRequest")}} dont le résultat sera un curseur ({{domxref("IDBCursor")}}) qui pourra être utilisé afin de parcourir les enregistrements correspondants. Cette méthode est utilisée afin de parcourir les clés d'un magasin d'objets grâce à un curseur.
Afin de déterminer si le curseur a bien été ajouté, on pourra écouter l'évènement success
sur le résultat de la méthode.
var requete = objectStore.openKeyCursor(optionalKeyRange, optionalDirection);
optionalKeyRange
optionalDirection
"next"
.Un objet {{domxref("IDBRequest")}} sur lequel seront déclenchés les différents évènements relatifs à cette opération.
Cette méthode peut déclencher une exception {{domxref("DOMException")}} ayant l'un des types suivants :
Exception | Description |
---|---|
InvalidStateError |
Le magasin d'objets ({{domxref("IDBObjectStore")}} ou l'index ({{domxref("IDBIndex")}}) a été supprimé. |
TransactionInactiveError |
La transaction associée au magasin d'objet ({{domxref("IDBObjectStore")}}) est inactive. |
DataError |
La clé ou l'intervalle de clés indiqué est invalide. |
Dans le fragment de code suivant, on crée une transaction, on l'utilise sur un magasin d'objets donné puis on utilise le curseur pour parcourir tous les enregistrements du magasin d'objets :
var transaction = db.transaction("name", "readonly"); var objectStore = transaction.objectStore("name"); var request = objectStore.openKeyCursor(); request.onsuccess = function(event) { var cursor = event.target.result; if(cursor) { // cursor.key contient la clé de l'enregistrement courant // à la différence de openCursor, il n'y a pas de cursor.value cursor.continue(); } else { // Il n'y a plus d'autres résultats } };
Spécification | État | Commentaires |
---|---|---|
{{SpecName('IndexedDB2', '#dom-idbobjectstore-openkeycursor', 'openKeyCursor')}} | {{Spec2('IndexedDB')}} |
{{Compat("api.IDBObjectStore.openKeyCursor")}}