2 votes

Puis-je avoir accès au localStorage du site à partir de l'extension chrome ?

Mon extension chrome a deux états : 1. Un site a des données d'authentification dans localStorage (un autre domaine), donc je dois montrer la fenêtre principale. 2. Il n'y a pas de données d'authentification, je dois donc afficher la fenêtre avec le formulaire de connexion et de mot de passe.

Afin de définir si les données d'authentification sont présentées, je voudrais vérifier son localStorage, mais il semble que ce soit impossible.

Cependant, chrome.storage.local.get y chrome.storage.local.set fonctionne parfaitement pour le stockage local de l'extension.

Ou existe-t-il une méthode pour y parvenir - accéder au localStorage d'un autre site ?

2voto

Keith Points 46288

Oui, vous pouvez exécuter un script sur la page pour accéder au stockage local. Vous pouvez le faire de plusieurs manières différentes, notamment en utilisant des script de contenu ou des script injectés.

J'utilise chrome-extension-async pour async / await soutien.

Par exemple, dans popup.js

document.addEventListener('DOMContentLoaded', async () => {
    try {
        const key = "foobar"

        // Get the current tab
        const tabs = await chrome.tabs.query({ active: true, currentWindow: true });
        const tab = tabs[0]; 

        // Execute script in the current tab
        const fromPageLocalStore = await chrome.tabs.executeScript(tab.id, { code: `localStorage['${key}']` });

        // Store the result  
        await chrome.storage.local.set({[key]:fromPageLocalStore[0]});
    } 
    catch(err) {
        // Log exceptions
    }
});

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X