1

清单摘录:

 "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,但我不确定。我该如何处理这种情况?

4

1 回答 1

0

从您的问题中不清楚您想要获得哪些 cookie。如果您在扩展程序中设置 cookie,您可以通过它访问它,document.cookie但这不是在扩展程序中保存持久信息的正确方法,因为有更好的东西,例如localStorageor chrome.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!');
    }
});

不要忘记在清单中包含权限:

"permissions": [
  "cookies",
  "*://*.example.com/*"
]
于 2013-05-30T17:33:44.730 回答