Google chrome extension Chrome扩展-tabId和tabIndex未定义
我正在创建一个Chrome扩展。当我尝试获取tabId和tabIndex时,它们都显示为“未定义” 下面是background.js:Google chrome extension Chrome扩展-tabId和tabIndex未定义,google-chrome-extension,Google Chrome Extension,我正在创建一个Chrome扩展。当我尝试获取tabId和tabIndex时,它们都显示为“未定义” 下面是background.js: chrome.extension.onRequest.addListener( function (request, sender) { if (request.command == "selected-tab") { chrome.tabs.getSelected(null,
chrome.extension.onRequest.addListener(
function (request, sender)
{
if (request.command == "selected-tab")
{
chrome.tabs.getSelected(null,
function()
{
// both show as undefined
alert('sender.tabId: ' + sender.tabId);
alert('sender.tabIndex' + sender.tabIndex);
});
}
}
);
以下是content-script.js:
chrome.extension.sendRequest({ command: "selected-tab", urltext: urlText });
以下是manifest.json:
{
"manifest_version": 2,
"name": "test2",
"description": "Test2 desc",
"version": "1.0",
"permissions": [
"tabs", "http://*/*", "https://*/*","contextMenus"
],
"background": {
"scripts": ["jquery-1.11.0.min.js", "background.js"]
},
"content_scripts": [
{
"matches": ["http://*/*"],
"js": ["jquery-1.11.0.min.js", "content-script.js"]
}
]
}
如何在background.js中获取当前选项卡的tabId和tabIndex
谢谢
更新#1
在background.js中尝试了此操作,但仍然没有在警报上显示选项卡id:
chrome.tabs.getCurrent(function (tab) {
alert(tab.id);
});
chrome.extension.onRequest事件支持回复发送方的概念,但如果接收方没有回复(或表明它打算回复),则会有一些代码试图在事件处理程序中对JS上下文设置进行垃圾收集。因为您正在处理程序的上下文中通过chrome.tabs.getSelected启动另一个异步操作,所以可能是垃圾收集在您的getSelected回调之前启动 请参阅回调参数上的文档,以: “函数在有响应时调用(最多一次)。” 参数应该是任何JSON ifiable对象 在同一文档中的Message listener上,则只有一个可以发送 响应。当事件侦听器 返回,除非从事件侦听器返回true以指示 您希望异步发送响应(这将保留消息) 通道打开到另一端,直到调用sendResponse为止。“ 一个简单的修复方法是在getSelected回调中手动调用sendResponse:
chrome.extension.onRequest.addListener(
function (request, sender)
{
if (request.command == "selected-tab")
{
chrome.tabs.getSelected(null,
function()
{
// both show as undefined
alert('sender.tabId: ' + sender.tabId);
alert('sender.tabIndex' + sender.tabIndex);
sendResponse(); // context can now be GC'd
});
}
return true; // indicates we plan to call sendResponse
}
);
有人知道为什么tabId和tabIndex是未定义的吗?或者至少给我指出正确的方向?谢谢