0

Als ein einfaches Beispiel, sagen wir, ich möchte ein Wort am Ende jeder Webseite einfügen, und ich möchte der Benutzer in der Lage sein, dieses Wort zu ändern. Also habe ich eine Optionsseite (innerhalb der Erweiterung), in der ich Benutzereingaben nehme und sie dazu nutze, "localStorage.preferences = x;" aufzurufen.Wie kann ich Einstellungen für eine Google Chrome-Erweiterung speichern?

Als nächstes navigiert der Benutzer zu http://www.google.com/, und ich injiziere ein Skript, das das Wort in localStorage.preferences schreibt. Das Problem ist, da ich jetzt in einer anderen Domäne bin, sehe ich die localStorage für google.com, nicht meine Erweiterung.

Wie kann ich Daten zwischen der Options-Seite meiner Erweiterung und einem Skript, das in Webseiten von Drittanbietern eingefügt wurde, freigeben?

+0

Es ist nicht möglich, da es die domänenübergreifende Richtlinie verletzt. Dies kann etwas helfen: http://www.nczonline.net/blog/2010/09/07/learning-from-xauth-cross-domain-localstorage/ – codef0rmer

Antwort

2

Es ist vielleicht nicht die direkteste Antwort auf Ihre Frage, aber eine Möglichkeit, dies zu umgehen, wäre message passing zu verwenden, um direkten Zugriff auf lokalen Speicher von einer anderen Domäne zu fälschen. Angenommen, Sie führen Ihr Javascript im Kontext eines Inhaltsskripts aus, könnten Sie eine Nachricht an die Hintergrundseite übergeben und nach einem Schlüssel fragen, der den Inhalt von localStorage zurückgibt.

+0

Ich bin sehr geschickt mit Chrome-Erweiterung Entwicklung, und wollte gib diese genaue Antwort. Message Passing ist absolut der richtige Weg. –