2016-08-18 107 views
1

我正在創建一個鉻原生擴展。我使用了chrome.tabs.sendMessage(tabs [0] .id,{parameters},function(response){});將消息從background.js發送到內容腳本js頁面的功能。腳本通過使用chrome.extension.onMessage.addListener(函數(味精,發件人,sendResponse){//代碼在這裏});方法。消息傳遞不適用於諸如chrome:// settings,chrome:// extension,chrome:// history等頁面。但是,這些消息可以與其他網頁(如google.com或任何其他網頁)正常工作。鉻擴展消息傳遞不工作在鉻://設置,鉻://擴展頁

這裏是我的manifest.json文件

{ 
"manifest_version": 2, 

    "permissions": [ 
    "storage", 
    "background", 
    "alarms", 
    "tabs", 
    "activeTab", 
    "http://*/*", 
    "https://*/*" 
], 
"background": { 
    "scripts": ["background.js","popup.js"], 
    "persistent": true 
}, 
"content_scripts": [ 
{ 
    "matches": ["<all_urls>","http://*/*", "https://*/*", "file:///*"], 
    "js": ["lib/jquery.js", "jquery.range2dslider.js", "popup.js"], 
    "css":["jquery.range2dslider.css", "popup.css"] 
} 

}

任何幫助,將不勝感激的一部分。

回答

1

chrome://對於權限/內容腳本匹配不是supported scheme"<all_urls>"並不意味着任何URL,但任何都支持 URL。

這是出於安全原因:Chrome不希望入侵其內部頁面。

您不能在這種情況下注入內容腳本,因此沒有人可以聽。

+0

不要忘記chrome:// flags /#extensions-on-chrome-urls –

+0

我真的認爲這個標記現在被拋出了。 – Xan