我有谷歌Chrome扩展的乐趣,我只是想知道我如何在变量中存储当前选项卡的URL ?
当前回答
这是一个非常简单的方法
window.location.toString();
你可能不得不这样做的内容脚本,因为它有所有的功能,在一个网页上的js文件可以有和更多。
其他回答
对于那些使用上下文菜单api的人来说,文档并没有立即明确如何获取选项卡信息。
chrome.contextMenus.onClicked.addListener(function(info, tab) {
console.log(info);
return console.log(tab);
});
https://developer.chrome.com/extensions/contextMenus
这个解决方案已经测试过了。
在manifest.json中设置API的权限
"permissions": [ ...
"tabs",
"activeTab",
"<all_urls>"
]
对第一个加载调用函数。https://developer.chrome.com/extensions/tabs#event-onActivated
chrome.tabs.onActivated.addListener((activeInfo) => {
sendCurrentUrl()
})
关于更改调用函数。https://developer.chrome.com/extensions/tabs#event-onSelectionChanged
chrome.tabs.onSelectionChanged.addListener(() => {
sendCurrentUrl()
})
获取URL的函数
function sendCurrentUrl() {
chrome.tabs.getSelected(null, function(tab) {
var tablink = tab.url
console.log(tablink)
})
警告!已弃用chrome.tabs.getSelected。请使用chrome.tabs.query,如其他答案所示。
首先,你必须在manifest.json中设置API的权限:
"permissions": [
"tabs"
]
并存储URL:
chrome.tabs.getSelected(null,function(tab) {
var tablink = tab.url;
});
async function getCurrentTabUrl () {
const tabs = await chrome.tabs.query({ active: true })
return tabs[0].url
}
您需要在清单中添加“permissions”:["tabs"]。
其他答案假设你想从弹出窗口或后台脚本中知道它。
如果你想从内容脚本中知道当前的URL,标准的JS方式适用:
window.location.toString()
你可以使用window的属性。位置来访问URL的各个部分,如主机、协议或路径。
推荐文章
- 如何禁用谷歌翻译从HTML在Chrome
- Chrome开发工具:如何找出什么是覆盖CSS规则?
- 资源解释为样式表,但以MIME类型text/html传输(似乎与web服务器无关)
- Chrome iOS(和Safari)的远程调试
- 在Chrome中模拟有限的带宽?
- 资源解释为文档,但使用MIME类型application/zip传输
- 如何让Chrome允许混合内容?
- 了解Chrome网络日志“停滞”状态
- 如何卸载Service Worker?
- jQuery ' .is(":visible") '在Chrome中无效
- 如何保存样式面板的CSS Chrome开发工具的变化?
- 当你双击日文文本时,Chrome如何决定突出显示什么?
- Chrome不会删除会话cookie
- 在Chrome和Firefox中用Javascript报告的神秘的“脚本错误”
- 在Window上执行'btoa'失败:要编码的字符串包含Latin1范围之外的字符。