У вас есть два варианта получения данных в скрипт контента:
- Использование Tab API:
http://code.google.com/chrome/extensions/tabs.html#method-executeScript
- Использование обмена сообщениями:
http://code.google.com/chrome/extensions/messaging.html
Использование Tab API
Обычно я использую этот подход, когда мое расширение будет время от времени использоваться, например, , устанавливая изображение в качестве обоев рабочего стола . Люди не устанавливают обои каждую секунду или каждую минуту. Они обычно делают это один раз в неделю или даже день. Поэтому я просто внедряю контент-скрипт на эту страницу. Это довольно легко сделать, вы можете сделать это либо по файлу, либо по коду, как описано в документации:
chrome.tabs.executeScript(tab.id, {file: 'inject_this.js'}, function() {
console.log('Successfully injected script into the page');
});
Использование обмена сообщениями
Если вам постоянно нужна информация с ваших сайтов, было бы лучше использовать обмен сообщениями. Существует два типа сообщений: долгоживущие и одиночные запросы. Ваш скрипт контента (который вы определили в манифесте ) может прослушивать запросы на расширение:
chrome.extension.onRequest.addListener(function(request, sender, sendResponse) {
if (request.method == 'ping')
sendResponse({ data: 'pong' });
else
sendResponse({});
});
А ваша фоновая страница может отправить сообщение этому скрипту содержимого через обмен сообщениями. Как показано ниже, он получит текущую выбранную вкладку и отправит запрос на эту страницу.
chrome.tabs.getSelected(null, function(tab) {
chrome.tabs.sendRequest(tab.id, {method: 'ping'}, function(response) {
console.log(response.data);
});
});
Зависит от вашего расширения, какой метод использовать. Я использовал оба. Для расширения, которое будет использоваться, как каждую секунду, каждый раз я использую Messaging (Long-Lived). Для расширения, которое не будет использоваться каждый раз, тогда вам не нужен скрипт контента на каждой отдельной странице, вы можете просто использовать executeScript Tab API, потому что он просто внедрит скрипт контента в любое время.
Надеюсь, это поможет! Выполните поиск в Stackoverflow, есть много ответов на скрипты контента и фоновые страницы.