2015-10-29 2 views
0

У меня есть это на моем фоне страницы:Не удается отправить сообщение с фоном страницы скрипта содержимого в Chrome Extension

function go(){ 
chrome.tabs.query({active: true, currentWindow: true}, function(tabs) { 
    chrome.tabs.sendMessage(tabs[0].id, {greeting: "hello"}, function(response) { 
    console.log(response.farewell); 
    }); 
}); 

} 

go(); 

И это в моем содержании сценария:

chrome.runtime.onMessage.addListener(
    function(request, sender, sendResponse) { 
    console.log(sender.tab ? 
       "from a content script:" + sender.tab.url : 
       "from the extension"); 
    if (request.greeting == "hello") 
     alert(request.greeting); 
    }); 

Я ожидал когда вы включаете приложение, но ничего не происходит. Я что-то упускаю?

EDIT: manifest.json:

{ 
    "manifest_version": 2, 

    "name": "Naming", 
    "description": "any", 
    "version": "1.0", 

    "permissions": [ 
    "tabs", 
    "activeTab", 
    "https://google.com.br/" 
    ], 

"background": {"scripts":["background.js"]}, 

    "content_scripts": [ 
    { 
     "js": ["CLAWS_Content_Script.js", "jquery.js"], 
     "css": ["CLAWS_Content_Script_CSS.css"], 
     "matches": ["<all_urls>"] 

    } 
    ], 

    "web_accessible_resources": [ 
     "CLAWS_Sem_Imagens.html", 
     "icone_XVermelho.png" 
    ] 


} 

Сценарий содержание загружается, потому что другие Funtions обеспечивает работает отлично. На консоли нет ошибок.

+0

@wOxxOm Извините, я не знаю, как его отлаживать, но другая информация. были добавлены:) –

+0

О, вы знаете, что при повторном включении расширения скрипт содержимого, объявленный в manifest.json, не волшебным образом вставляется повторно? Вы также должны перезагрузить веб-страницу. – wOxxOm

+0

@wOxxOm Это было хорошее предположение, но, к сожалению, не работало:) и, основываясь на том, что я узнал об отладке в chrome-расширениях за последние пять минут, я мог бы сказать, что, возможно, слушатель в сценарии содержимого никогда не называется ... –

ответ

0

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

Если вы действительно хотите the alert to launch as I enable the extension, тогда введите скрипт контента вручную через chrome.tabs.executeScript, и в этом случае вам не нужен раздел "content_scripts" в manifest.json.

+0

Спасибо! Это было полезно! –

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