opc*_*0de 10 javascript google-chrome-extension
我想自动删除某个域上的所有cookie,所以我制作了一个扩展名.我能够查看该域的cookie,但我没有找到任何删除它们的方法
这是我的代码,函数eraseCookie只被调用一次
有什么建议 ?
function eraseCookie(name) {
document.cookie = name + '=; expires=Thu, 01 Jan 1970 00:00:01 GMT;';
}
$(document).ready(function() {
var cookies = document.cookie.split(";");
for (var i = 0; i < cookies.length; i++)
{
window.alert(cookies[i]);
eraseCookie(cookies[i].split("=")[0]);
}
});
Run Code Online (Sandbox Code Playgroud)
我也在使用jquery,但我没有看到问题!
{
"name": "Gapa",
"version": "0.1",
"description": "",
"browser_action": {
"default_icon": "sigla.png",
"default_title": "",
"popup": "hello.html"
},
"content_scripts": [
{
"matches": ["*://*.google.ro/*"],
"js": ["jquery-1.8.2.min.js","cookie_handler.js"]
}
],
"icons": {
"128":"sigla.png" },
"permissions": [
"cookies",
"tabs",
"*://*.google.ro/*"
],
"manifest_version": 2
}
Run Code Online (Sandbox Code Playgroud)
LE:这是我的脚本文件现在的样子:
$(document).ready(function() {
var cookies = document.cookie.split(";");
for (var i = 0; i < cookies.length; i++)
{
chrome.cookies.remove({"url": ".google.ro", "name":cookies[i].split("=")[0]}, function(deleted_cookie) { window.alert('deleted cookie') });
}
});
Run Code Online (Sandbox Code Playgroud)
Ark*_*ski 26
首先,您必须在清单中提供cookie权限.
其次,Chrome会为您提供Cookie api,其中删除功能已被本地化:
chrome.cookies.remove(object details, function callback);
Run Code Online (Sandbox Code Playgroud)
你可以像这样使用它:
chrome.cookies.remove({"url": "http://domain.com", "name": "cookieName"}, function(deleted_cookie) { console.log(deleted_cookie); });
Run Code Online (Sandbox Code Playgroud)
尝试使用此列出所选域的所有cookie(内部删除功能会删除此域中的所有cookie):
chrome.cookies.getAll({domain: "domain.com"}, function(cookies) {
for(var i=0; i<cookies.length;i++) {
chrome.cookies.remove({url: "http://domain.com" + cookies[i].path, name: cookies[i].name});
}
});
Run Code Online (Sandbox Code Playgroud)
在你的manifest.json中添加:
"background": {
"scripts": ["background.js"]
},
Run Code Online (Sandbox Code Playgroud)
并在background.js中包含建议的功能.
我把Arkadiusz的答案拼凑在一起并得到了这个工作:
在manifest.json中:
"background": {
"scripts": ["background.js"]
},
"permissions": [
"cookies",
"https://*/",
"http://*/"
]
Run Code Online (Sandbox Code Playgroud)
在background.js中:
chrome.cookies.getAll({domain: ".mydomain.com"}, function(cookies) {
for(var i=0; i<cookies.length;i++) {
console.log(cookies[i]);
chrome.cookies.remove({url: "https://" + cookies[i].domain + cookies[i].path, name: cookies[i].name});
}
});
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
14245 次 |
| 最近记录: |