Если вы владеете двумя расширениями, например, то, которое поддерживает оба расширения. Вы можете определенно использовать обмен сообщениями между расширениями, чтобы передать это электронное письмо или даже localStorage другому расширению.
Например, посмотрите мое расширение здесь:
https://github.com/mohamedmansour/reload-all-tabs-extension/tree/v2
Одно расширение является ядром, а другое - просто действием браузера (сейчас они объединены с v3), но v2 позволяет им обоим общаться друг с другом. Действие браузера отправляет событие «ping», а расширение ядра прослушивает такое событие и возвращает «pong». Расширение действия браузера является «дополнением» к основному расширению. Когда вы открываете «Опции», он использует опции из основного.
Назад к вашим вопросам ... Чтобы получить доступ к кросс-расширениям localStorage, вы можете сделать что-то вроде этого:
расширение основного ядра:
localStorage['foo'] = 'bar';
var secondary_extension_id = 'pecaecnbopekjflcoeeiogjaogdjdpoe';
chrome.extension.onRequestExternal.addListener(
function(request, sender, response) {
// Verify the request is coming from the Add-On.
if (sender.id != secondary_extension_id)
return;
// Handle the request.
if (request.getLocalStorage) {
response({result: localStorage});
} else {
response({}); // Snub them.
}
}
);
вторичное расширение:
var main_extension_id = 'gighmmpiobklfepjocnamgkkbiglidom'
chrome.extension.sendRequest(main_extension_id, {getLocalStorage: 1},
function (response) {
var storage = response.result;
alert(storage['foo']); // This should print out 'bar'.
}
);
Кстати, я действительно не тестировал это расширение. Я просто скопировал и вставил из перезагрузки все вкладки расширения, которые сделали что-то подобное.