2013-07-31 28 views
8

document.cookie = "cookiename = cookievalue; hết hạn = Mon, 12Jun2015: 00: 00: 00; path = /;"Sử dụng javascript để đặt cookie trong IE

Tôi chạy tập lệnh này trên Internet Explorer 10 nhưng không chia sẻ cookie giữa 2 tab IE. Nhưng khi tôi xóa thuộc tính "hết hạn" để nó có vẻ hoạt động:

document.cookie= "cookiename=cookievalue ;path=/;" 

Nhưng tôi không muốn xóa thuộc tính "hết hạn". Vậy làm thế nào để giải quyết vấn đề này?

+2

gì bạn có nghĩa là bằng cách không chia sẻ Cookie giữa 2 tab IE. Miễn là nó không hết hạn; cookie sẽ có sẵn cho tất cả các tab của tất cả các phiên bản của trình duyệt cụ thể đó (trong trường hợp của bạn là IE-10). – Prash

+0

@Prash Tôi có nghĩa là tôi chạy mã cookie được đặt từ tab 1, nhưng khi tôi chuyển sang tab 2, tôi chạy cảnh báo (document.cookie) và không thấy cookie tôi đã đặt từ tab 1 – monocular

+0

Bạn chưa cung cấp đủ thông tin. Tab # 1 và # 2 nằm ở vị trí nào? Nếu bạn nhấp vào "Xem> Chính sách bảo mật trang web" trong IE sau khi cố gắng đặt cookie, bạn có thấy rằng cookie liên tục của bạn bị "Chặn" hoặc "Leashed" không? – EricLaw

Trả lời

0

Mã mẫu sau đây sẽ chứng minh việc đặt cookie bạn chọn trực tiếp mà không yêu cầu đầu vào từ người dùng. Để lưu trữ một cookie từ trang web của bạn, chỉ cần đặt một cuộc gọi đến các chức năng javascript trong trang HTML của bạn, như thế này:

<script type="text/javascript">cookieSet();</script> 

Các công việc thực tế được thực hiện bởi cookieSet() javascript chức năng, mà có thể là trong khu vực của trang HTML của bạn, hoặc trong một tập tin javascript riêng biệt:

var cookieText = "Put your desired cookie value here"; 
var cookiePrefix = ""; 
var myPage = location.href; 
var wwwFlag = myPage.indexOf('www'); 
if (wwwFlag > 0) { 
cookiePrefix = "www"; 
} 
var cookieName = cookiePrefix + "cbCookie"; 
function cookieSet() { 
if (document.cookie != document.cookie) { 
index = document.cookie.indexOf(cookieName); 
} else { 
index = -1; 
} 
if (index == -1) { 
document.cookie=cookieName+"="+cookieText+"cbEndCookie; expires=Monday, 04-Apr-2020 05:00:00 GMT"; 
} 
} 
+0

Nó không hoạt động. Tôi chạy nó trong tab IE đầu tiên, nhưng trong một tab IE khác tôi chạy cảnh báo mã (document.cookie); và không thấy cookie từ tab 1 – monocular

+0

@monocular hoàn toàn bình thường nếu bạn không tải lại tab2 ở giữa. –

14

tôi đã sử dụng mã này kể từ giữa thập niên 90 '- nó đã làm việc trong tất cả các trình duyệt trên tất cả các nền tảng cho đến nay

Bao gồm các tập tin và sử dụng

setCookie("name","value",expiryDate,"/"); 

// cookie.js file 
var cookieToday = new Date(); 
var expiryDate = new Date(cookieToday.getTime() + (365 * 86400000)); // a year 

/* Cookie functions originally by Bill Dortsch */ 

function setCookie (name,value,expires,path,theDomain,secure) { 
    value = escape(value); 
    var theCookie = name + "=" + value + 
    ((expires) ? "; expires=" + expires.toGMTString() : "") + 
    ((path)  ? "; path=" + path : "") + 
    ((theDomain) ? "; domain=" + theDomain : "") + 
    ((secure)  ? "; secure"   : ""); 
    document.cookie = theCookie; 
} 

function getCookie(Name) { 
    var search = Name + "=" 
    if (document.cookie.length > 0) { // if there are any cookies 
     var offset = document.cookie.indexOf(search) 
     if (offset != -1) { // if cookie exists 
     offset += search.length 
     // set index of beginning of value 
     var end = document.cookie.indexOf(";", offset) 
     // set index of end of cookie value 
     if (end == -1) end = document.cookie.length 
     return unescape(document.cookie.substring(offset, end)) 
     } 
    } 
} 
function delCookie(name,path,domain) { 
    if (getCookie(name)) document.cookie = name + "=" + 
     ((path) ? ";path=" + path : "") + 
     ((domain) ? ";domain=" + domain : "") + 
     ";expires=Thu, 01-Jan-70 00:00:01 GMT"; 
}