我正在使用 Google Chrome 扩展程序,我只是想知道如何将当前选项卡的 URL 存储在变量中?
最佳答案
像这样使用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!
});
您需要在 extension manifest 中请求 tabs
或 activeTab
权限:
"permissions": [ ...
"tabs"
]
或
"permissions": [ ...
"activeTab"
]
如果您的代码在用户显式调用扩展程序(单击其图标或其上下文菜单项或按下其 chrome.commands
)后使用 chrome.tabs.query,则首选 activeTab
热键),因为此权限在安装扩展程序时不会添加任何警告,不像 tabs
添加读取您的浏览历史记录
,这可能会吓到一些用户。
请务必注意,“当前选项卡”的定义可能会根据扩展程序的需求而有所不同。
当您想要访问用户聚焦窗口(通常是最上面的窗口)中的当前选项卡时,在查询中设置 lastFocusedWindow: true
是合适的。
设置currentWindow: true
允许您获取当前正在执行扩展程序代码的窗口中的当前选项卡。例如,如果您的扩展程序创建了一个新窗口/弹出窗口(更改焦点),但仍想从运行扩展程序的窗口访问选项卡信息,这可能会很有用。
在此示例中,我选择使用 lastFocusedWindow: true
,因为 Google 会指出 currentWindow
may not always be present 的情况。 .
您可以使用此处定义的任何属性进一步优化选项卡查询:chrome.tabs.query
关于google-chrome - 如何从 Google Chrome 扩展程序获取当前选项卡的 URL?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1979583/