【发布时间】:2018-02-06 02:15:00
【问题描述】:
当我运行以下函数时,cookie 长度为零:
function cookieinfo() {
chrome.cookies.getAll({}, function(cookie) {
console.log(cookie.length);
allCookieInfo = "";
for (i = 0; i < cookie.length; i++) {
console.log(JSON.stringify(cookie[i]));
allCookieInfo = allCookieInfo + JSON.stringify(cookie[i]);
}
localStorage.allCookieInfo = allCookieInfo;
});
它应该找到用户拥有的所有 cookie,但我什么也没得到。
使用:我正在创建一个 chrome 扩展程序,为用户创建一个新选项卡。我正在尝试重新创建 chrome 新标签的外观以及它们如何显示用户已经访问过的页面。
这里是manifest.json:
{
"manifest_version": 2,
"name": "-------",
"version": "0.1",
"background": {
"scripts": ["background.js"]
},
"content_scripts": [{
"matches": [
"<all_urls>"
],
"js": ["jquery-3.2.1.min.js", "content.js"]
}],
"permissions": ["tabs", "cookies"],
"chrome_url_overrides": {
"newtab": "NewTab.html"
}
}
【问题讨论】:
-
您是否在清单中提供了正确的权限?此外,您将通过连接
JSON.stringify()结果创建无效 JSON,即您将创建类似:"{}{}{}{}{}" -
@PatrickEvans 是的,我确实在清单中添加了权限:
"permissions": ["tabs", "cookies"]我会试试 JSON.stringyfy() -
@PatrickEvans 尝试过 JSON.stringify(cookie[0]) 并且我没有确定。对于 JSON.stringify(cookie) 我得到 [],所以它是空的。我是按这种方式写的,还是你的意思是别的?
-
您还必须在权限中添加您想要访问的网站的网址,例如,如果您希望全部使用
<all_urls>。至于 JSON,我的意思是如果它一直在工作,你就会将无效的 JSON 存储到 localStorage -
@PatrickEvans 我正在使用
<all_urls>。由于第一个打印长度的 console.log 返回零,所以它当然不起作用。
标签: javascript google-chrome cookies