chrome:54.0.2840.87
这是我的第一个Chrome扩展程序,我是javascript的新手。
我的manifest.json:
"background": {
"persistent": true,
"scripts": ["lib/jquery/jquery-3.1.1.min.js", "background.js"]
},
"content_scripts": [{
"matches": ["<all_urls>"],
"js": ["content-scriptA.js",
"lib/jquery/jquery-3.1.1.min.js"],
"css": ["res/css/ms-0.0.1.css"]
}],
"content_security_policy": "script-src 'self' https://connect.facebook.net; object-src 'self'",
"permissions": [
"activeTab",
"tabs",
"storage",
"identity",
"<all_urls>"
],
background.js:
chrome.runtime.onMessage.addListener(function(request, sender, sendResponse) {
if (message_from_A) {
chrome.tabs.query({currentWindow: true, active: false}, function(tabs) {
chrome.tabs.executeScript(null, {file: "content-scriptB.js"});
});
}
if (message_from_B) {
chrome.tabs.query({currentWindow: true, active: false}, function(tabs) {
chrome.tabs.sendMessage(tabs[0].id, {to : "A", do: "..."});
});
});
和
chrome.runtime.onMessage.addListener(function(request, sender, response) {
console.log("...");
});
content-scriptA.js,content-scriptB.js的处理程序。
content-scriptA用于呈现A.html,content-scriptB用于在使用我的扩展名时在同一iframe中呈现B.html。
我想要做的是当用户想要从B.html返回A.html时,使用content-scriptA.js渲染A.html。
当我执行content-scriptB.js时,我认为A.js和B.js都在进行,但是当我从后台发送消息时,没有人回答。
我尝试使用端口,重新加载相同的脚本等等,但仍然找不到TT的方式
感谢您的帮助,并阅读我的问题。