2

Я построил хром-расширение, которое сохраняет данные на localStorage со справочной страницы (используя chrome.storage.sync.set).Возможно ли получить доступ к моему chrome extension localStorage с моего сайта?

Теперь скажите, что я хочу создать веб-сайт и получить доступ к данным расширения на localStorage с веб-сайта, можно ли получить доступ к этим данным из домена веб-сайта? возможно, я могу добавить что-то в файл манифеста, чтобы это можно было сделать?

+1

Ну, я не думаю, что вы можете это сделать. Приложения в браузере, включая хромовые расширения, работают в песочнице и, следовательно, не могут получить доступ к ресурсам других. –

ответ

0

Вам нужно будет вставить скрипт контента на свой веб-сайт, а затем использовать фоновый скрипт, чтобы передать localStorage в ваш скрипт контента. Что касается связи между вашим скриптом контента и скриптом на вашем веб-сайте, вам нужно будет проявить творческий подход.

1

Я предполагаю, что вы знаете о процедурах передачи сообщений между скриптом контента и фоновым скриптом.

Теперь, я не думаю, что ваш веб-сайт может сделать запрос на расширение и «вытащить» данные из него, но вы, безусловно, можете добавить свои «push» данные на ваш сайт.

Это, как вы можете это сделать:

Content Script

Сценарий контент должен проверить, если сайт открыт на сайте ваш сайт, скажем, www.yourwebsite.com

if (currentUrl == "www.yourwebsite.com") 
{ 
    .... 
} 

Если это действительно ваш сайт, потяните необходимые данные из фонового сценария

if (currentUrl == "www.yourwebsite.com") 
{ 
    chrome.extension.sendRequest({ "getLocalStorageData": true, "dataFieldName": "favouriteColor" }, handleLocalStorageResult); 
} 

function handleLocalStorageResult(dataValue) 
{ 
    ..... 
} 

При получении данных в методе handleLocalStorageResult, вводить данные в HTML страницы, так что Javascript на вашем сайте можно прочитать

if (currentUrl == "www.yourwebsite.com") 
{ 
    chrome.extension.sendRequest({ "getLocalStorageData": true, "dataFieldName": "favouriteColor" }, handleLocalStorageResult); 
} 

function handleLocalStorageResult(dataValue) 
{ 
    var localStorageDataDiv = $('<div>').appendTo('body'); 
    localStorageDataDiv.attr('id', 'extensionData'); 
    localStorageDataDiv.html(dataValue); 
} 

вашего сайта Javascript

Теперь Javascript вашего сайта может прочитать данные

var data = $('#extensionData').html(); 
alert('My Extension's LocalStorage Data is ' + data); 
0

Ответы на даты не упоминаются, что контент-скрипты и веб-страница доля их localStorage объект. Если ваш скрипт содержимого записывается в localStorage, веб-страница позже сможет его прочитать, и наоборот.