我正在尝试使用以下代码专门从域中获取 cookie:
<script language="javascript" type="text/javascript">
var ID;
function getCookies(domain, name) {
chrome.cookies.get({"url": domain, "name": name}, function(cookie) {
ID = cookie.value;
});
}
getCookies("http://www.example.com", "id")
alert(ID);
</script>
问题是警报总是说未定义。但是,如果我改变
ID = cookie.value;
到
alert(cookie.value);
它正常工作。如何保存该值以备后用?
更新:看来,如果我在脚本运行后从 chrome 控制台调用 alert(ID),它就可以工作。如何设置我的代码以等待 chrome.cookies.get 完成运行?
最佳答案
几乎所有的 Chrome API 调用都是异步的,因此您需要使用回调来按顺序运行代码:
function getCookies(domain, name, callback) {
chrome.cookies.get({"url": domain, "name": name}, function(cookie) {
if(callback) {
callback(cookie.value);
}
});
}
//usage:
getCookies("http://www.example.com", "id", function(id) {
alert(id);
});
关于javascript - 在谷歌浏览器扩展程序中获取 cookie,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5892176/