在 Chrome 扩展中,后台页面可以与 page_action 弹出窗口对话吗
内容脚本可以使用 与后台页面对话
chrome.extension.sendRequest
后台页面可以使用 与内容脚本对话
chrome.tabs.getSelected(null, function(tab) {
chrome.tabs.sendRequest(tab.id, {}, function(response) {
// do something with response here
})
})
页面动作弹出窗口可以使用 与后台页面对话
chrome.extension.sendRequest
那么,有没有办法背景页面与弹出窗口对话?
用例是
弹出窗口打开并希望从页面获取一些信息
因此它向后台页面发送请求
后台页面现在向内容脚本发送请求
- ,内容脚本将响应发送回后台页面。
所以现在后台脚本需要将其发送到弹出窗口!!
这是怎么发生的?
It is possible for a content script to talk to the background page using
chrome.extension.sendRequest
It is possible for the background page to talk to the content script using
chrome.tabs.getSelected(null, function(tab) {
chrome.tabs.sendRequest(tab.id, {}, function(response) {
// do something with response here
})
})
It is possible for a page_action popup to talk to the background page using
chrome.extension.sendRequest
So, is there a way for the background page to talk to the popup?
The use case is one where
the popup is open and wants to get some information from the page
so it sends a request to the background page
the background page now sends a request to the content script
and the content script sends a response back to the background page.
So now the background script needs to send this to the popup !!
How does that happen?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
只要弹出窗口保持打开状态,您就可以使用
chrome.extension.sendRequest
。但是看看您的工作流程,为什么不直接跳过后台页面并直接从弹出窗口向内容脚本发送请求呢?然后您可以使用
sendResponse()
将数据返回到弹出窗口。You can, using
chrome.extension.sendRequest
, as long as popup remains open.But looking at your workflow, why not just skip background page and send request to a content script directly from a popup? Then you can just use
sendResponse()
to return the data back to popup.