在我的Chrome扩展程序中,我想获取当前的标签网址。在我的angular2组件中,我创建了字符串变量来保存URL。然后我这样做:
ngOnInit() {
chrome.tabs.getCurrent(function(tab){
this.currentUrl = tab.url;
});
console.log(this.currentUrl);
}
在控制台中,我收到消息 undefined 。所以问题是我如何将Chrome扩展功能结果分配给我的TypeScript变量?
答案 0 :(得分:0)
现在不推荐使用chrome.tabs.getSelected()
方法。
获取当前标签网址的推荐方法是使用chrome.tabs.query()
。
示例用法:
chrome.tabs.query({'active': true, 'lastFocusedWindow': true}, function (tabs) {
var url = tabs[0].url;
});
这要求您请求访问extension manifest中的chrome.tabs
API:
"permissions": [ ...
"tabs"
]
请注意,“当前标签”的定义可能因您的扩展程序需求而有所不同。
当您想要访问用户的焦点窗口(通常是最顶层的窗口)中的当前选项卡时,在查询中设置lastFocusedWindow: true
是合适的。
设置currentWindow: true
可让您获取当前正在执行扩展程序代码的窗口中的当前选项卡。例如,如果您的扩展程序创建了一个新窗口/弹出窗口(更改焦点),但仍希望从运行扩展程序的窗口访问选项卡信息,这可能很有用。
我选择在此示例中使用lastFocusedWindow: true
,因为Google会调出currentWindow
may not always be present的案例。
您可以使用此处定义的任何属性进一步优化标签查询:chrome.tabs.query