javascript - 通过 chrome 扩展检查 cookie 是否存在

标签 javascript json google-chrome

list 摘录:

 "permissions": [
    "tabs",
    "cookies",
    "*://*/*"
   ]

我在 Popup.js 上尝试的代码(不起作用):

function getCookie(name) {
var dc = document.cookie;
var prefix = name + "=";
var begin = dc.indexOf("; " + prefix);
if (begin == -1) {
    begin = dc.indexOf(prefix);
    if (begin != 0) return null;
}
else
{
    begin += 2;
    var end = document.cookie.indexOf(";", begin);
    if (end == -1) {
    end = dc.length;
    }
}
return unescape(dc.substring(begin + prefix.length, end));
} 


function doSomething() {
var myCookie = getCookie("TestCookie");

if (myCookie == null) {
document.write("<p>unable to load</p>");
throw "stop execution";
}
else {
document.write("<p>loaded</p>");
    // do cookie exists stuff
}
}

我认为 chrome 扩展不支持完整的 java,尽管我不确定。我该如何应对这种情况?

最佳答案

从您的问题来看,尚不清楚您想要获得什么cookie。如果您在扩展程序中设置 cookie,则可以通过 document.cookie 访问它,但这不是在扩展程序中保存持久信息的正确方法,因为有更好的东西,例如 localStoragechrome.storage。但如果你需要在扩展中获取站点cookie,最好的方法是这样的:

chrome.cookies.get({ url: 'http://example.com', name: 'somename' },
  function (cookie) {
    if (cookie) {
      console.log(cookie.value);
    }
    else {
      console.log('Can\'t get cookie! Check the name!');
    }
});

不要忘记将权限包含到 list 中:

"permissions": [
  "cookies",
  "*://*.example.com/*"
]

关于javascript - 通过 chrome 扩展检查 cookie 是否存在,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13778966/

相关文章:

javascript - Internet Explorer 扩展 (BHO) 中的沙盒 Javascript 执行

android - 如何在android中过滤来自Json的数据?

css - 图像/SVG 和 Chrome 的旋转/裁剪问题

javascript - 与 Firefox 相比,在 Chrome 中选择文本路径不会选择预期的文本

javascript - jquery 无法获取 li 的 id

javascript - ASP Net Core FileContentResult音频文件到Safari

javascript - 视差滚动有点跳跃

java - 从具有复杂对象的 REST Web 服务返回 JSON 对象

android - 错误 "is not a JSONObject"

html - CSS3 属性列数。 Chrome、Firefox 和 Safari 中的不同显示