2010-01-28 6 views

Respuesta

43

aún más simple que eso:

para que diga:

var myStoredValue = localStorage["TheKeyToMyStoredValue"]; 

a escribir:

localStorage["TheKeyToMyStoredValue"] = myNewValueToStore; 

para deshacerse de:

delete localStorage["TheKeyToMyStoredValue"]; 
+2

Usted señor es un druida y santo de nivel 99. – EbilGenius

+0

Esta ha sido la mejor respuesta que leí en mucho tiempo. – whizzzkid

+0

gran respuesta. Solo tenga en cuenta que esto no funcionará con las secuencias de comandos de contenido. Estaba confundido hasta que encontré [esto] (http://stackoverflow.com/a/15466494/4926817) –

21

Sí, lo es. Repasando un recorrido completo de cómo hacerlo probablemente excederá la duración de una respuesta razonable de StackOverflow, por lo que lo referiré a this very extensive tutorial por Rajdeep Dua.

El código en cuestión se vería así:

// Store item in local storage: 
    function setItem(key, value) { 
    try { 
     log("Storing [" + key + ":" + value + "]"); 
     window.localStorage.removeItem(key);  // <-- Local storage! 
     window.localStorage.setItem(key, value); // <-- Local storage! 
    } catch(e) { 
     log("Error inside setItem"); 
     log(e); 
    } 
    log("Return from setItem" + key + ":" + value); 
    } 

    // Gets item from local storage with specified key. 
    function getItem(key) { 
    var value; 
    log('Retrieving key [' + key + ']'); 
    try { 
     value = window.localStorage.getItem(key); // <-- Local storage! 
    }catch(e) { 
     log("Error inside getItem() for key:" + key); 
     log(e); 
     value = "null"; 
    } 
    log("Returning value: " + value); 
    return value; 
    } 

    // Clears all key/value pairs in local storage. 
    function clearStrg() { 
    log('about to clear local storage'); 
    window.localStorage.clear(); // <-- Local storage! 
    log('cleared'); 
    } 

    function log(txt) { 
    if(logging) { 
     console.log(txt); 
    } 
    } 
+1

El enlace del tutorial está roto, pero el ejemplo aún existe. Aquí está el ejemplo del tutorial https://chrome.google.com/webstore/detail/hmbpgbeiphknbkjjfppodijapijlpkkc –

+0

Esta API también hace un buen trabajo: https://developer.chrome.com/extensions/storage.html También le permite sincronizar los datos a su perfil –

5

La versión actual de cromo tiene almacenamiento local.

Lo he usado yo mismo. Puede usar modernizr para detectar si el navegador lo admite o no. He escrito una solución para un cliente en la que hago una copia de seguridad de las cookies si no existe almacenamiento local, pero esto no debería ser un problema para las extensiones.

+0

Enlace muerto a partir del 11/11/11 – techie007

+1

Lo eliminé y actualicé la respuesta –

7

Chrome también es compatible con HTML5 Web Database spec. Esto le proporciona una base de datos SQL local, por lo que puede hacer cosas más complejas que simplemente almacenar pares de nombre/valor en Almacenamiento local.

3

Hoy podría ser mejor usar chrome.storage. chrome.storage es asíncrono, lo que lo hace más rápido y localStorage está limitado a 5MB.

+0

"lo que hace que sea más rápido" _ \ [citación necesitada] \ – Xan

+0

Según lo especificado [aquí] (https: // developer.chrome.com/apps/storage) por los desarrolladores de Chrome, las operaciones masivas de lectura y escritura no bloqueantes son más rápidas que las API localStorage de bloqueo y serie. – krbnr

+0

¡Gracias por el enlace! – Xan

1

ya hay algunas buenas respuestas aquí, pero tenga en cuenta que si decide utilizar un script de contenido en su extensión, ese script de contenido no tendrá acceso a localStorage. por lo tanto, chrome.storage es una buena alternativa.

Cuestiones relacionadas