在google chrome扩展中获取cookie
Getting cookies in a google chrome extension
我正在尝试使用以下代码从域获取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控制台调用警报(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);
});
任何依赖于调用chrome.cookies.get()的结果的代码都必须从回调中调用。在您的示例中,只需等待回调触发,然后显示警告:
<script language="JavaScript" type="text/javascript">
var ID;
function getCookies(domain, name)
{
chrome.cookies.get({"url": domain, "name": name}, function(cookie) {
ID = cookie.value;
showId();
});
}
function showId() {
alert(ID);
}
getCookies("http://www.example.com", "id")
</script>
获取一个域下的所有cookie:
const r = await chrome.cookies.getAll({ domain: domain }) //domain: stackoverflow.com
这个脚本可以在弹出窗口和后台service worker中运行,但不能在内容脚本中运行。
相关文章:
- 如何从浏览器中获取cookie,从另一个应用程序中删除
- 分析JS代码以在客户端获取cookie
- Js_of_ocaml-获取cookie时出错
- 获取cookie's的单值javascript
- 如何使用socket.io获取cookie数据
- 无法在 Express.js 中设置和获取 Cookie
- JQuery-从响应中获取Cookie
- 在WordPress中创建并获取cookie
- 使用PHP和JSP在另一个网页中获取cookie值
- 加载页面以获取cookie并同时读取源代码
- JavaScript 设置并获取 cookie
- 在Sencha touch 2.0中使用Ajax请求获取cookie
- JQuery.post 从服务器获取cookie,但不在我的计算机上设置它们
- 如何在 Meteor 中设置和获取 cookie(服务器端)
- 如何使用 Greasemonkey 从远程域获取 cookie
- 获取cookie值的问题
- 访问HTTPS页面上的HTTP以获取Cookie
- 从其他网络应用程序获取Cookie
- 如何使用URL获取cookie值
- 如何从用户输入中获取cookie,并将其显示在html元素上