我有谷歌Chrome扩展的乐趣,我只是想知道我如何在变量中存储当前选项卡的URL ?
当前回答
警告!已弃用chrome.tabs.getSelected。请使用chrome.tabs.query,如其他答案所示。
首先,你必须在manifest.json中设置API的权限:
"permissions": [
"tabs"
]
并存储URL:
chrome.tabs.getSelected(null,function(tab) {
var tablink = tab.url;
});
其他回答
其他答案假设你想从弹出窗口或后台脚本中知道它。
如果你想从内容脚本中知道当前的URL,标准的JS方式适用:
window.location.toString()
你可以使用window的属性。位置来访问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!
});
这需要你请求访问chrome。标签API在你的扩展清单:
"permissions": [ ...
"tabs"
]
重要的是要注意,“当前选项卡”的定义可能会根据扩展的需要而有所不同。
在查询中设置lastFocusedWindow: true是合适的,当你想要访问用户聚焦窗口中的当前选项卡(通常是最上面的窗口)。
设置currentWindow: true允许你在你的扩展代码正在执行的窗口中获得当前选项卡。例如,如果您的扩展创建了一个新的窗口/弹出窗口(改变焦点),但仍然想从运行扩展的窗口访问选项卡信息,这可能是有用的。
在本例中,我选择使用lastFocusedWindow: true,因为谷歌调用了currentWindow可能不总是存在的情况。
您可以使用这里定义的任何属性进一步优化选项卡查询:chrome.tabs.query
警告!已弃用chrome.tabs.getSelected。请使用chrome.tabs.query,如其他答案所示。
首先,你必须在manifest.json中设置API的权限:
"permissions": [
"tabs"
]
并存储URL:
chrome.tabs.getSelected(null,function(tab) {
var tablink = tab.url;
});
你得检查一下。
HTML
<button id="saveActionId"> Save </button>
manifest.json
"permissions": [
"activeTab",
"tabs"
]
JavaScript 下面的代码将活动窗口的所有url保存为JSON对象,作为按钮单击的一部分。
var saveActionButton = document.getElementById('saveActionId');
saveActionButton.addEventListener('click', function() {
myArray = [];
chrome.tabs.query({"currentWindow": true}, //{"windowId": targetWindow.id, "index": tabPosition});
function (array_of_Tabs) { //Tab tab
arrayLength = array_of_Tabs.length;
//alert(arrayLength);
for (var i = 0; i < arrayLength; i++) {
myArray.push(array_of_Tabs[i].url);
}
obj = JSON.parse(JSON.stringify(myArray));
});
}, false);
嗨,这里是一个谷歌Chrome样本,电子邮件当前的网站给一个朋友。背后的基本理念是你想要什么…首先,它获取页面的内容(对你来说不感兴趣)…然后它得到URL(<——好部分)
此外,这是一个很好的工作代码示例,我更喜欢阅读文档。
可在这里找到: 通过电子邮件发送本页
推荐文章
- 资源解释为样式表,但以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范围之外的字符。
- Chrome中的请求监控
- 在Chrome 55中,防止显示HTML 5视频的下载按钮