Chrome消息扩展:从注入的脚本到后台
Chrome message extension : From injected script to background
/* My Background */
console.log("Init BackGround ! ");
chrome.runtime.onMessageExternal.addListener(
(request, sender, sendResponse) => {
console.log("J'ai bien reçu un truc");
console.log(request);
console.log(sender);
}
);
// Inject script
chrome.webNavigation.onCompleted.addListener((details) => {
chrome.tabs.executeScript(details.tabId, {
file: "include/ts/injectScript.js",
runAt: "document_end"
});
}, {url: [{urlPrefix: "https://website.com"}]});
console.log("End Background init");
/* My injected script */
var extensionID = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
chrome.runtime.sendMessage(extensionID, {test : 123},(response) => {
console.log(response);
});
/* One part of my manifest.json (with good url) */
"externally_connectable": {
"matches": [
"*://*.exemple.com/tests/*"
]
},
"permissions": [..., "*://*.exemple.com/tests/*",...]
后台在页面加载时自动注入 JS 脚本。
在控制台(在当前页面上)中执行的所有测试都有效,并且后台正在接收消息。
不幸的是,尽管后台很好地注入了加载页面的脚本,但它不会收到任何消息。
对不起我的英语,提前感谢您的回答
热雷米-F
您必须
使用 chrome.runtime.onMessage.addListener
而不是 chrome.runtime.onMessageExternal.addListener
来接收来自您自己的内容脚本的消息。
chrome.runtime.onMessageExternal
适用于来自其他扩展程序/应用的消息。
相关文章:
- 选项卡侦听器未被来自后台脚本的消息激活
- 将图像从后台页面传递给内容脚本javascript
- 使用javascript后台脚本获取Yotutube频道信息
- 在chrome web商店中打开时,是否有允许执行内容/后台脚本的解决方案
- 在后台运行的脚本在出现弹出窗口时会停止
- 在chrome扩展中获取从后台页面到内容脚本的配置
- 使用chrome扩展,如何使用长寿命连接(端口)将消息从后台脚本传递到内容脚本
- Chrome扩展使用后台页面+内容脚本
- Chrome扩展:在后台页面和网站页面脚本之间进行通信的最佳方法
- 为什么chrome.sockets.tcp.create()在应用程序后台脚本中不起作用
- Chrome 打包应用 - 消息从后台传递.js传递到另一个脚本页面
- 将注入的按钮从内容脚本调用到后台.js
- 后台脚本在受限范围内运行的 Chrome 应用
- 如何停止 npm 脚本在后台自动运行
- 如何通过在后台运行安装程序或脚本来安装 NPAPI 插件
- Chrome:同时使用内容和后台脚本不起作用
- 从“选项”弹出窗口中选择一个值,然后将其保存到 Chrome.storage,以便在后台脚本中用作值
- 应用程序后台脚本,访问打开的窗口的元素
- Chrome 扩展程序:无法让消息传递在后台脚本和内容脚本之间正常工作
- 如何在后台获取 chrome 扩展程序的内容脚本