Ano*_*ous 9 google-chrome-extension
chrome.tabs.get显然不能在内容脚本中工作,除了通过它发送它chrome.extension.sendRequest我不知道如何使背景响应正确的选项卡.
如何让内容脚本将信息发送到后台页面,然后后台页面将信息返回到它来自的选项卡?
Sin*_*dar 11
编辑:这个答案已过时,并使用已弃用的功能.请改用其他答案.
好吧,让我解释一下你的家伙;)
首先从内容脚本发送一条消息,如下所示:
内容脚本 - 发送消息
chrome.extension.sendRequest({ action: "WhatYouWant"});
Run Code Online (Sandbox Code Playgroud)
背景页面 - 接收消息和响应
chrome.extension.onRequest.addListener(function(request, sender, sendResponse)
{
if(request.action)
{
// Make what you want
chrome.tabs.getSelected(null, function(tabs) {
chrome.tabs.sendRequest(tabs.id, { action: "response" });
});
}
});
Run Code Online (Sandbox Code Playgroud)
ContentScript - 添加一个监听器
chrome.extension.onRequest.addListener(function(request, sender, sendResponse){
if(request.action)
{
alert('The response is : ' + request.action);
}
});
Run Code Online (Sandbox Code Playgroud)
onMessage提供了一个sendResponse函数,可用于将响应直接发送回发送者。
background.js 摘抄:
chrome.extension.onMessage.addListener(
function(message, sender, sendResponse) {
if ( message.type == 'getTabId' )
{
sendResponse({ tabId: sender.tab.id });
}
}
);
Run Code Online (Sandbox Code Playgroud)
content_scripts.js 摘抄:
var tabId;
chrome.extension.sendMessage({ type: 'getTabId' }, function(res) {
tabId = res.tabId;
});
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
13603 次 |
| 最近记录: |