Use chrome.tabs.query()
像这样:
chrome.tabs.query({active: true, lastFocusedWindow: true}, tabs => {
let url = tabs[0].url;
// use `url` here inside the callback because it's asynchronous!
});
您需要请求tabs
or activeTab
您的许可扩展清单 https://developer.chrome.com/extensions/manifest:
"permissions": [ ...
"tabs"
]
or
"permissions": [ ...
"activeTab"
]
Prefer activeTab
如果您的代码在用户显式调用扩展程序(单击其图标或其上下文菜单项或按下其chrome.commands
热键),因为此权限在安装扩展时不会添加任何警告,这与tabs
这增加了Read your browsing history
这可能会吓到一些用户。
请务必注意,“当前选项卡”的定义可能会根据扩展程序的需求而有所不同。
Setting lastFocusedWindow: true
当您想要访问用户焦点窗口(通常是最上面的窗口)中的当前选项卡时,在查询中使用 是合适的。
Setting currentWindow: true
允许您获取当前正在执行扩展代码的窗口中的当前选项卡。例如,如果您的扩展程序创建了一个新窗口/弹出窗口(更改焦点),但仍希望从运行扩展程序的窗口访问选项卡信息,这可能会很有用。
我选择使用lastFocusedWindow: true
在此示例中,因为 Google 指出了以下情况currentWindow
可能并不总是存在 https://developer.chrome.com/extensions/windows#current-window.
您可以使用此处定义的任何属性进一步优化选项卡查询:chrome.tabs.query https://developer.chrome.com/extensions/tabs#method-query