I am trying to get a cookie specifically from a domain using this code:
<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>
The problem is that the alert always says undefined. However, if I change
ID = cookie.value;
to
alert(cookie.value);
it works properly. How do I save the value to use later?
Update: It appears that if I call alert(ID) from the chrome console after the script runs, it works. How can I set my code to wait until chrome.cookies.get finishes running?
Advertisement
Answer
Almost all Chrome API calls are asynchronous, so you need to use callbacks to run code in order:
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); });