Cookies Chrome扩展获取所有标签cookie
尝试使用chrome扩展从页面获取所有Cookie 例如,页面操作系统 这是我的密码:Cookies Chrome扩展获取所有标签cookie,cookies,google-chrome-extension,google-chrome-devtools,Cookies,Google Chrome Extension,Google Chrome Devtools,尝试使用chrome扩展从页面获取所有Cookie 例如,页面操作系统 这是我的密码: chrome.tabs.query({active: true, currentWindow: true}, function(tabs) { var domain = getDomain(tabs[0].url); chrome.cookies.getAll({ domain: domain }, function(cookies) { consol
chrome.tabs.query({active: true, currentWindow: true}, function(tabs) {
var domain = getDomain(tabs[0].url);
chrome.cookies.getAll({
domain: domain
}, function(cookies) {
console.log(cookies);
});
});
此代码将返回域ya.ru的所有cookie(8)。
但问题是,当我打开浏览器控制台时,我看到的不仅仅是ya.ru域的cookies:
谷歌和其他网站也存在同样的情况。所以我在一个页面上有多个域cookie。如何获取页面上的所有cookie
感谢您的时间。Devtools显示页面()请求的所有资源URL的cookies,因此我们可以通过访问将在页面中执行的内容脚本代码来执行相同的操作:
chrome.tabs.executeScript({
代码:“performance.getEntriesByType(“resource”).map(e=>e.name)”,
},数据=>{
if(chrome.runtime.lastError | | | |!数据| |!数据[0])返回;
常量url=data[0].map(url=>url.split(/[#?]/)[0]);
const uniqueUrls=[…新集合(URL).values()]过滤器(布尔);
我保证(
uniqueUrls.map(url=>
新承诺(解决=>{
chrome.cookies.getAll({url},resolve);
})
)
)。然后(结果=>{
//将阵列阵列转换为经过重复数据消除的平面cookie阵列
常数cookies=[
…新地图(
[].concat(…结果)
.map(c=>[JSON.stringify(c),c])
).values()
];
//在这里做点饼干
console.log(唯一URL、cookie);
});
});
重要注意事项:
- 您的manifest.json应该在
中有权限“
,或者有一个明确的URL匹配模式列表,允许在chrome.cookies.getAll中得到相应的结果”
- 当存在数千个Cookie时,上面的Cookie重复数据消除代码可能会很慢
- 我们正在读取URL的cookie,而不是域,因为这是为i.stack.imgur.com之类的东西获取包含cookie(imgur.com)的唯一可靠方法