Обмен постоянными данными между представлениями в расширении Google Chrome - PullRequest
3 голосов
/ 08 ноября 2011

Предположим, у нас есть расширение Chrome, которое использует фоновую страницу, всплывающую страницу, возможно, некоторые другие представления и скрипты содержимого. Существуют постоянные данные, относящиеся к предметной области, которые должны быть доступны из всех представлений и сценариев содержимого.
Как лучше всего делиться этими данными?

Ответы [ 2 ]

7 голосов
/ 08 ноября 2011

Одним из подходов является сохранение всех общих данных на фоновой странице и доступ к ним через getBackgroundPage , который доступен в большинстве контекстов. Если недоступно (например, в контекстном скрипте), вы можете использовать для передачи сообщений , чтобы получить данные.

1 голос
/ 02 апреля 2017

Поскольку @ BorisSmus упомянул , вы можете создать отдельный constants.js файл, который вы включаете везде, где вам это нужно.

Например, в вашем manifest.json:

"content_scripts": [
    {
        "js": ["constants.js", /* ... your other content scripts ... */]
    }
],

И следующее в верхней части <head> на ваших всплывающих и фоновых страницах:

<script src="constants.js"></script>

Это также имеет то преимущество, что не приводит к проблемам, если один из пользователей constants.jsслучайно изменяет из нее переменную, поскольку каждый пользователь имеет свою собственную копию.

...