我正在試驗chrome.extension
API。Chrome onMessage監聽器未被調用
的manifest.json
{
"name": "First",
"version": "1.0",
"manifest_version": 2,
"description": "First extension",
"background": {
"scripts": ["test.js"]
},
"page_action": {
"default_icon": "icon.png",
"default_popup": "popup.html"
},
"content_scripts": [ {
"js": [ "jquery.min.js", "display.js" ],
"matches": [ "http://*/*", "https://*/*" ]
} ],
"permissions" : [
"tabs",
"http://*/*", "https://*/"
]
}
display.js
alert("inside display.js");
chrome.extension.onMessage.addListener(
function(request, sender, sendResponse){
alert("inside msg");
var time = request.sel_text;
alert(time);
});
test.js
function check(tab_id, data, tab){
if(tab.url.indexOf("google") > -1){
chrome.pageAction.show(tab_id);
chrome.tabs.executeScript(null, {"file" : "display.js"}) ;
}
};
chrome.tabs.onUpdated.addListener(check);
popup1.js
function myfunc(){
var x = $('#options option:selected').text();
alert(x);
chrome.extension.sendMessage({sel_text: x});
}
$(document).ready(function(){
$('#options').change(myfunc);
});
現在,當我的頁面加載我得到three(3)
彈出窗口說inside display.js
但chrome.extension.onMessage.addListener
永遠不會被調用。
那麼,我做錯了什麼。我們可以從內容腳本訪問chrome.extension.*
API嗎?
感謝這個工作。你能否提供給我的文檔說明'chrome.extension.sendMessage'不會觸發內容腳本,因爲我創建的Chrome消息API非常容易混淆 – RanRag
「請注意,擴展程序無法使用此方法將消息發送到內容腳本。要將消息發送到內容腳本,請使用chrome.tabs.sendMessage()。「 - ['chrome.extension.sendMessage']的文檔(http://developer.chrome.com/extensions/extension.html#method-sendMessage) (和經驗) –
(先前的評論被取消)它確實,我錯誤地閱讀了文檔並找出了我的問題。 –