2016-05-26 6 views
0

Я создаю расширение Google Chrome, и у меня есть background.js и content_script.js. Когда загружается веб-страница, я отправляю сообщение на скрипт содержимого для запуска функции; к сожалению, он не ведет себя так, как ожидалось. Код в вопросе находится в моем файле content_script.js, и это выглядит следующим образом:вызов функции внутри chrome.runtime.onMessage.addListener

chrome.runtime.onMessage.addListener(
    function(request, sender, sendResponse) { 
     alert("Test 1 2 3"); 
     welcome(tab); 
    } 
); 

У меня есть функция под названием welcome(tab), который принимает текущую вкладку в качестве параметра и выполняет некоторые произвольные функции. Я знаю, что сообщение получено, потому что alert всегда происходит, но функция welcome никогда не выполняется. Я знаю, что функция welcome работает, я провел много испытаний. Вещи перестали работать, когда я добавил addListener. Какие-либо предложения? До сих пор я везде искал. Кроме того, может ли это иметь отношение к функции addListener, не зная, что такое глобальная переменная tab?

ответ

1

Я думаю, проблема в том, что вкладка здесь. Посмотрите на это: https://developer.chrome.com/extensions/messaging

chrome.runtime.onMessage.addListener(
    function(request, sender, sendResponse) { 
     alert("Test 1 2 3"); 
     welcome(sender.tab); 
    } 
); 
+0

Хм, похоже, что это не работает. Если вы уверены, что это правильно, я могу снова проверить код функции 'welcome'. Но по праву я добавил ваше редактирование, и« alert »все еще всплывает, после этого ничего не происходит. –

+0

@CameronPayton, я тоже не очень уверен в этом. Но нужно что-то описать: параметр, необходимый для функции приветствия, - это объект int (tab_id) или вкладка или любая другая информация о вкладке? – Kelvin

+0

вы можете использовать console.log (sender.tab), чтобы узнать подробности этого объекта и использовать нужную вам информацию. – Kelvin

Смежные вопросы