该代码旨在将用户正在查看的页面的当前选项卡对象输出到控制台,但它只是输出未定义的内容。它是从浏览器操作页面中运行的。
chrome.tabs.getCurrent( function(tab){
console.log(tab);
} );
我看过documentation,据我所知,它的代码似乎与它所说的相符。
发布于 2011-07-16 23:17:08
尝试:
chrome.tabs.getSelected(null, function(tab){
console.log(tab);
});
发布于 2013-01-07 08:34:30
从Google Chrome16开始,getSelected()
方法就被弃用了(但官方文档中的许多文章还没有更新)。Official message is here。要获取在指定窗口中选择的选项卡,请使用带有参数{'active': true}
的chrome.tabs.query()
。所以现在它应该看起来像这样:
chrome.tabs.query({ currentWindow: true, active: true }, function (tabs) {
console.log(tabs[0]);
});
发布于 2020-10-23 18:17:05
由于chrome.tabs
仅在后台或弹出脚本中可用,而后台脚本在任何选项卡中都处于非活动状态,因此chrome.tabs.getCurrent()
始终返回undefined
。
相反,我们可以从任何消息侦听器回调的第二个参数中检索active Tab
对象。例如,
browser.runtime.onMessage.addListener((message, sender) => {
console.log('Active Tab ID: ', sender.tab.id);
});
https://stackoverflow.com/questions/6718256
复制相似问题