我已经通过MDN上的webextension文档。我知道信息API用于从content_script
到background script
进行通信。但是,我想从popup script to background script
进行沟通。firefox webextension从弹出脚本到后台脚本消息
我的使用情况是:
如何以
background script
从与popup.html
页面的脚本进行通信。
比方说,manifest.json
为
{
"description": "Demonstrating toolbar buttons",
"manifest_version": 2,
"name": "button-demo",
"version": "1.0",
"permissions" : ["activeTab","currentWindow"],//
"background": {
"scripts": ["background.js"]
},
"browser_action": {
"browser_style": true,
"default_popup": "popup.html",
"default_icon": {
"16": "icons/page-16.png",
"32": "icons/page-32.png"
}
}
}
background.js
//background script is listening to
browser.runtime.onMessage.addListener((sentMesssage) =>
{
console.log('got the message: ',sentMessage.actualMessage);
});
popup.html是
<html>
<body>
<script src = 'popup.js'></script>
</body>
<html>
个
popup.js
我的问题站在这里。从以下选项使用哪种方法:
browser.runtime.sendMessage({"actualMessage":"some message"});
OR
var tabQ = browser.tabs.query({
currentWindow: true,
active: true
});
tabQ.then((tabs)=>{
browser.tabs.sentMessage(tab[0].id , {'actualMessage' : "some message"});
});
的[在后台背景脚本之间的通信(背景脚本,浏览器操作,页面操作,选项页,等等。)可能的复制( http://stackoverflow.com/questions/41420528/communicate-between-scripts-in-the-background-context-background-script-browse) – Makyen
请[edit]要成为话题的问题:include a [mcve]这是重复的问题。对于Chrome扩展程序或Firefox WebExtensions,这通常意味着包含您的* manifest.json *以及一些背景,内容和/或弹出式脚本/ HTML。寻求调试帮助的问题(“为什么代码不按我想要的方式工作?”)必须包括:(1)期望的行为,(2)特定问题或错误,以及(3)重现它所需的最短代码*在问题本身*。另请参阅:[我可以在这里询问什么主题?](http://stackoverflow.com/help/on-topic)和[问]。 – Makyen
您的问题太宽泛。您在一个问题中涉及多个问题,Stack Overflow更关注每个问题的一个问题。您的文章包含一般问题,您没有提供[mcve]的多个调试问题,以及一些更具体的问题。请将您的问题集中在一件事上。 – Makyen