getcookie该怎么写
时间: 2024-05-11 10:19:14 浏览: 61
`getcookie` 是一个比较通用的方法,需要根据具体的应用场景来实现。一般来说,我们可以使用 `document.cookie` 属性来获取当前页面的 cookie 信息。例如:
```javascript
function getCookie(name) {
const cookies = document.cookie.split(';');
for (let i = 0; i < cookies.length; i++) {
const cookie = cookies[i].trim();
if (cookie.startsWith(name + '=')) {
return cookie.substring(name.length + 1);
}
}
return null;
}
```
这个方法接受一个参数 `name`,表示要获取的 cookie 的名称。它会将当前页面的所有 cookie 字符串拆分成一个数组,然后遍历数组,找到名称为 `name` 的 cookie,最后返回对应的值。如果没有找到,则返回 `null`。需要注意的是,这个方法只能获取当前页面的 cookie 信息,如果需要跨域获取其他域名下的 cookie,则需要使用其他方式,如 CORS、代理等。
相关问题
读写cookie 封装
当涉及到读写 Cookie 时,可以使用以下方法进行封装:
1. 设置 Cookie:使用`document.cookie`属性来设置 Cookie。通过传递参数来设置 Cookie 的名称、值以及其他可选的属性(例如过期时间、路径等)。封装一个函数如下:
```javascript
function setCookie(name, value, days, path) {
let expires = "";
if (days) {
let date = new Date();
date.setTime(date.getTime() + (days * 24 * 60 * 60 * 1000));
expires = "; expires=" + date.toUTCString();
}
document.cookie = name + "=" + (value || "") + expires + "; path=" + (path || "/");
}
```
使用示例:
```javascript
setCookie("username", "John Doe", 7); // 设置一个名为 "username" 的 Cookie,有效期为7天
```
2. 获取 Cookie:使用`document.cookie`属性来获取所有的 Cookie,然后解析出指定名称的 Cookie 值。封装一个函数如下:
```javascript
function getCookie(name) {
let cookieArr = document.cookie.split("; ");
for (let i = 0; i < cookieArr.length; i++) {
let cookiePair = cookieArr[i].split("=");
if (name === cookiePair[0]) {
return decodeURIComponent(cookiePair[1]);
}
}
return null;
}
```
使用示例:
```javascript
let username = getCookie("username"); // 获取名为 "username" 的 Cookie 值
```
3. 删除 Cookie:通过设置 Cookie 的过期时间为过去的时间来删除 Cookie。封装一个函数如下:
```javascript
function deleteCookie(name) {
document.cookie = name + "=; expires=Thu, 01 Jan 1970 00:00:00 UTC; path=/;";
}
```
使用示例:
```javascript
deleteCookie("username"); // 删除名为 "username" 的 Cookie
```
这样,你可以封装这些函数,以便在需要的时候方便地操作 Cookie。
写一个js控制cookie的代码
下面是一个示例代码,可以用来控制 cookie。
```
// 设置 cookie
function setCookie(name, value, days) {
var expires = "";
if (days) {
var date = new Date();
date.setTime(date.getTime() + (days * 24 * 60 * 60 * 1000));
expires = "; expires=" + date.toUTCString();
}
document.cookie = name + "=" + (value || "") + expires + "; path=/";
}
// 获取 cookie
function getCookie(name) {
var nameEQ = name + "=";
var ca = document.cookie.split(';');
for(var i=0;i < ca.length;i++) {
var c = ca[i];
while (c.charAt(0)==' ') c = c.substring(1,c.length);
if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
}
return null;
}
// 删除 cookie
function deleteCookie(name) {
setCookie(name, "", -1);
}
```
使用方法:
```
// 设置 cookie,默认保存 30 天
setCookie("username", "John", 30);
// 获取 cookie
var username = getCookie("username");
// 删除 cookie
deleteCookie("username");
```
阅读全文