首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何从后台页面获取当前tabId

如何从后台页面获取当前tabId
EN

Stack Overflow用户
提问于 2011-09-05 10:38:23
回答 3查看 46.8K关注 0票数 40

如何从后台页面获取当前tabId?current tabId是用户可以查看其内容的选项卡。

background.html

代码语言:javascript
复制
<html>
<head>
    <script>

    if(typeof localStorage.state == 'undefined')
        localStorage.state = 'off'
    chrome.browserAction.onClicked.addListener(function(tab) {
        if(localStorage.state == 'on')
        {
            localStorage.state = 'off';
        }
        else
        {
            localStorage.state = 'on';
        }
        chrome.browserAction.setBadgeText({text: localStorage.state, tabId: tab.id});
        chrome.tabs.sendRequest(tab.id, {state: localStorage.state});
        //chrome.tabs.sendRequest(tab.id, {state: localStorage.state});
    });
    </script>
</head>

EN

回答 3

Stack Overflow用户

发布于 2012-08-22 01:51:10

getSelected已经被deprecated了。新的方法是:

代码语言:javascript
复制
chrome.tabs.query(
  {currentWindow: true, active : true},
  function(tabArray){...}
)

如果您想在活动选项卡上执行一些回调,您可以按如下方式包装上述内容:

代码语言:javascript
复制
function doInCurrentTab(tabCallback) {
    chrome.tabs.query(
        { currentWindow: true, active: true },
        function (tabArray) { tabCallback(tabArray[0]); }
    );
}

例如

代码语言:javascript
复制
var activeTabId;
doInCurrentTab( function(tab){ activeTabId = tab.id } );
票数 53
EN

Stack Overflow用户

发布于 2013-08-20 08:58:50

在您的后台页面中运行此程序

代码语言:javascript
复制
chrome.tabs.query({active:true,windowType:"normal", currentWindow: true},function(d){console.debug(d);})

甚至更好

代码语言:javascript
复制
chrome.tabs.query({active:true,windowType:"normal", currentWindow: true},function(d){console.debug(d[0].id);})
票数 7
EN

Stack Overflow用户

发布于 2011-09-05 10:49:18

许多API方法将null解释为当前选项卡。chrome.tabs.sendRequest就是其中之一。

否则:

代码语言:javascript
复制
chrome.tabs.getSelected(null, function(tab) { ... })
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7303452

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档