dimonfreeman, понятно, ну вы вопрос бестолково задали, поэтому похоже я вам дал неверный ответ.
Если вам нужно запустить алерт на фоновой странице, то тогда алгоритм немного меняется. Проблема здесь в том, что сообщение в фоновой процесс (background.js) может передать лишь контент-скрипт (scripts.js) поэтому необходимо его использовать как посредника.
Итак, для начала в файле background.js ставите слушатель сообщений таким вот образом:
chrome.extension.onMessage.addListener(function(message) {
console.log('Из контент-скрипта получено следующее сообщение: ' + message);
if (message == 'вызвать алерт') {
// Здесь впишите ваш код для вызова алерта
}
});
Этот слушатель будет ожидать сообщений из контент-скрипта (script.js) и при получении сообщения с текстом "вызвать алерт" он выполнит тот код, который вы пропишите.
Далее, внутри контент-скрипта тоже нужен свой слушатель:
window.addEventListener('message', function(event) {
// Извлекаем текст сообщения:
var dom_message = event.data;
console.log('Из DOM получено сообщение: ' + dom_message);
// Пересылаем полученное сообщение
// в фоновый процесс background.js:
chrome.extension.sendMessage(event.data);
});
Этот слушатель будет ждать сообщений из DOM и пересылать их в фоновый процесс background.js
А вот теперь внутри DOM вы можете спокойно вызывать:
window.postMessage('вызвать алерт', '*');
Это сообщение сначала попадает в конктент-скрипт, а потом уже вполне себе спокойно уйдет в фоновый процесс, где активирует выполнение того кода, который вам нужно - необязательно алерта, можно что угодно.