2017-01-27 13 views
3

Я работаю над расширением chrome для автоматического заполнения демо-данных. Я создал файл JavaScript «xyz.js» для автоматического заполнения данных. Итак, я выполняю скрипт, нажимая на кнопку с chrome.tabs.executeScript(tabs[0].id, {file: "xyz.js"}); И я получаю требуемый результат.Что такое сценарий содержимого и фоновый сценарий в расширении хром?

Я не использую скрипт контента или фоновый скрипт. Какие преимущества я получу, используя скрипт контента или фоновый скрипт?

+1

Тот факт, что вы используете 'chrome.tabs.executeScript (вкладки [0] .id, {file:" xyz.js "});' Означает, что вы * * используете скрипт содержимого: * xyz.js *. Кроме того, вызов в chrome.tabs.executeScript() 'выполняется в фоновом контексте, но, вероятно, из всплывающего окна (в предположении). – Makyen

+1

Я бы предположил, что вы прочитали [Обзор расширения Chrome] (https://developer.chrome.com/extensions/overview) (и, возможно, вместе со страницами, связанными с обзором). Раздел [архитектура] (https://developer.chrome.com/extensions/overview#arch) имеет общую информацию об архитектуре, которая должна помочь вам понять, как вообще организовано/сделано. Возможно, вам также захочется прочитать [Сценарии контента] (https://developer.chrome.com/extensions/content_scripts) и [Передача сообщений] (https://developer.chrome.com/extensions/messaging). – Makyen

ответ

6

Прежде всего, вы используете действительно с использованием сценария содержания. Здесь вы просто контролируете выполнение скрипта контента через событие.

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

В то время как содержания сценариев являются один-х который фактически взаимодействует с веб-страницей (по существу, элементами DOM).

Теперь разница между вашим методом и включая их в явном, что, если они включены в манифесте, сценарии контента будет загружаться сразу при загрузке страницы и, следовательно, (в данном случае) будет автомати- заполнять данные одновременно, в то время как chrome.tabs.executeScript(tabs[0].id, {file: "xyz.js"}); загрузит сценарий содержимого по определенному событию запуска и, следовательно, (в этом случае) автоматически заполняет данные на триггере (например, при нажатии кнопки).

Here - все это способы для создания сценариев содержания.

+0

Теперь я знаю, что если я включу сценарий содержимого в manifest.json, я могу загрузить скрипт содержимого сразу после обновления страницы. Что делать, если я хочу сохранить сценарий содержимого в манифесте, но хочу запускать только при нажатии кнопки? –

+0

@ParagBandewar В этом случае переместите код внутри функции и вызовите его, когда нажимается кнопка. –

+0

любые идеи о https://stackoverflow.com/questions/44909642/how-to-get-background-script-to-call-function-in-content-script-for-chrome-exten – SuperUberDuper

2

Фактически выполнение сценариев в расширении chrome - это еще один способ использования сценария содержимого. Скрипты содержимого также могут быть определены в манифесте расширения.

Вскоре скрипт Content может получить доступ к небольшой части расширения api и может полностью работать с DOM страницы. Они загружаются на страницу при автоматической навигации, если они определены в манифесте, или вы можете вводить их в api, который вы используете, но конечный результат тот же.

Фоновый сценарий не может получить доступ к DOM страницы, но дает вам полный доступ к api расширения.

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

Здесь представлена ​​более подробная информация об архитектуре расширения chrome, также вы можете найти информацию о содержании и фоновом скрипте. https://developer.chrome.com/extensions/overview

1

Основная цель имея background.js файл и сценарии контента является повышение производительности расширения.

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

В более простом смысле, имея background.js и сценарии содержание в месте повышает эффективность и то, что разработчики расширений Google предлагают. И, наконец, файл, который вы используете, сам является сценарием контента, поскольку он взаимодействует с веб-страницей. Я надеюсь, что у вас есть запись файла в разделе сценариев содержимого файла manifest.json.