appAPI.tabs.getActive在firefox中返回空对象
appAPI.ready(function()
{
// retrieves the information for the active tab
appAPI.tabs.getActive(function(tabInfo) {
console.log(
'tabId: ' + tabInfo.tabId +
' tabUrl: ' + tabInfo.tabUrl
);
});
});
我在我的扩展程序中尝试了上面的函数/代码appAPI.tabs.getActive,它在Chrome中正常工作,但它不能在firefox中运行,它给我空对象{}。如果有人知道什么是问题,请尽快回复,提前谢谢
答案 0 :(得分:1)
根据经验,只有在背景范围以外的范围内使用appAPI.tabs API时才会出现这种情况。 请注意,它仅在后台范围内受支持。
要在其他作用域中使用appAPI.tabs.getActive,请从作用域发送消息到后台作用域以获取tabInfo对象,然后将数据发送回原始作用域,如弹出作用域中的以下示例:
<强> popup.html 强>:
function crossriderMain($) {
var tabInfo = null;
appAPI.message.addListener(function(msg) {
if (msg.type==='set-tabInfo') {
tabInfo = msg.tabInfo;
}
});
appAPI.message.toBackground({type:'get-tabInfo'});
}
<强> background.js 强>:
appAPI.ready(function() {
appAPI.message.addListener(function(msg) {
if (msg.type==='get-tabInfo') {
appAPI.tabs.getActive(function(tabInfo) {
appAPI.message.toPopup({type:'set-tabInfo', tabInfo:tabInfo});
});
}
});
});