2009-09-17 16 views

Respuesta

-3

Aún mejor, puede utilizar el almacenamiento local de HTML5:

localStorage.setItem("itemid", "hello"); // write 
value = localStorage.getItem("itemid");  // read 

Si realmente quería leer las cookies de cualquier sitio el usuario es mirando, como escribió Dan, no es posible, ya que se podrían hacer cosas realmente malas.

Todo lo que puede obtener de una página es el contenido DOM de la página.

+0

Ahora deberíamos usar 'chrome.storage.local'. De todos modos, es un artículo de hace 5 años. – jiyinyiyong

22

Es la primera vez que leo algo realmente incorrecto en este sitio. Obtener cookies de documentos reales desde una extensión es INDEED posible.

que sólo tiene estas dos cosas en su manifiesto:

"content_scripts": [ 
    { 
     "matches": ["http://*/*", "https://*/*"], 
     "js": ["cookie_handler.js"] 
    } 
    ], 
    "permissions": [ 
    "tabs", 
    "http://*/*", 
    "https://*/*" 
    ], 

sus cookie_handler.js se ejecutarán en el mismo contexto de cada página del cargador/marco/iframe. tratar de poner allí una sola línea:

alert(document.cookie); 

y verá :)

+0

¿Esto significa que es posible hacer una extensión como Permit Cookies de Firefox? Esa extensión permite al usuario para cada sitio Permitir siempre, Permitir sesión, Bloquear, Eliminar. ¿O tal extensión no se puede hacer para Chrome? – Louise

+0

da error: 'no se puede cargar javascript cookie_handler.js para content_scripts' –

+1

@MuhammadAdeelZahid Necesita escribir su script de controlador de cookies allí: P –

3

Si usted está buscando para manipular información de cookies, sin que el usuario tenga que visitar el sitio, (útil para algo así como el Firefox de TACO), Actualmente se encuentra fuera de suerte. Parece que Google está trabajando en él sin embargo: Se han añadido recientemente un controlador de galletas relativamente completo a la API experimental: chrome.experimental.cookies

Esperamos que esto se graduarán con el API apoyado pronto.

16

Actualmente el mejor (el más simple) forma de obtener las cookies del sitio en extensión es la siguiente:

chrome.cookies.get({ url: 'http://example.com', name: 'somename' }, 
    function (cookie) { 
    if (cookie) { 
     console.log(cookie.value); 
    } 
    else { 
     console.log('Can\'t get cookie! Check the name!'); 
    } 
}); 

Así que ahora que no es necesario el script de contenido para este, pero no se olvide de incluir los permisos en manifiesto:

"permissions": [ 
    "cookies", 
    "*://*.example.com/*" 
] 
+7

Esto funcionó para mí. Vale la pena mencionar que necesitas poner este código en el script de fondo. –

Cuestiones relacionadas