wii*_*man 33 google-chrome-extension
如何从后台页面获取当前tabId?current tabId是用户可以看到其内容的选项卡.
background.html
<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>
Run Code Online (Sandbox Code Playgroud)
Ari*_*iac 46
getSelected已被弃用.新方法是:
chrome.tabs.query(
{currentWindow: true, active : true},
function(tabArray){...}
)
Run Code Online (Sandbox Code Playgroud)
如果要在活动选项卡上执行某些回调,可以将上面的内容包装为:
function doInCurrentTab(tabCallback) {
chrome.tabs.query(
{ currentWindow: true, active: true },
function (tabArray) { tabCallback(tabArray[0]); }
);
}
Run Code Online (Sandbox Code Playgroud)
例如
var activeTabId;
doInCurrentTab( function(tab){ activeTabId = tab.id } );
Run Code Online (Sandbox Code Playgroud)
在后台页面中运行此命令
chrome.tabs.query({active:true,windowType:"normal", currentWindow: true},function(d){console.debug(d);})
Run Code Online (Sandbox Code Playgroud)
甚至更好
chrome.tabs.query({active:true,windowType:"normal", currentWindow: true},function(d){console.debug(d[0].id);})
Run Code Online (Sandbox Code Playgroud)
根据官方文档:Manifest V3(承诺),将于 2023 年 1 月起强制执行 https://developer.chrome.com/docs/extensions/reference/tabs/#get-the-current-tab
async function getCurrentTab() {
let queryOptions = { active: true, lastFocusedWindow: true };
let [tab] = await chrome.tabs.query(queryOptions);
return tab;
}
Run Code Online (Sandbox Code Playgroud)
许多 API 方法将其解释null为当前选项卡。chrome.tabs.sendRequest是其中之一。
否则:
chrome.tabs.getSelected(null, function(tab) { ... })
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
36650 次 |
| 最近记录: |