这个问题在这里已有答案:
我正在创建一个chrome原生扩展 . 我使用chrome.tabs.sendMessage(tabs [0] .id,,function(response){});从background.js向内容脚本js页面发送消息的功能 . 在内容上收到发送消息使用chrome.extension.onMessage.addListener编写脚本(函数(msg,sender,sendResponse){// code goes here});方法 . 传递的邮件不适用于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不希望入侵其内部网页 .
你不能在这样的上下文中注入内容脚本,因此没有人可以听 .