Cách tiếp cận cụ thể nhất của JS hoặc JQuery để giám sát cookie thông qua trang cuộc sống trên trình duyệt và kích hoạt sự kiện là gì khi cookie được 'thay đổi?Trình theo dõi cookie của Jquery
Trả lời
Theo như tôi biết, không thể liên kết sự kiện change
(hoặc tương tự) với cookie trực tiếp. Thay vào đó, tôi sẽ đi theo phương pháp này:
Tạo một con trỏ so sánh giá trị cookie với giá trị đã biết trước đó mỗi X mili giây.
// basic functions from the excellent http://www.quirksmode.org/js/cookies.html
function readCookie(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;
}
/////////////////////////////////
// ACTUAL FUN STUFF BELOW
/////////////////////////////////
var cookieRegistry = [];
function listenCookieChange(cookieName, callback) {
setInterval(function() {
if (cookieRegistry[cookieName]) {
if (readCookie(cookieName) != cookieRegistry[cookieName]) {
// update registry so we dont get triggered again
cookieRegistry[cookieName] = readCookie(cookieName);
return callback();
}
} else {
cookieRegistry[cookieName] = readCookie(cookieName);
}
}, 100);
}
Cách sử dụng sau đó sẽ là một cái gì đó như thế này:
listenCookieChange('foo', function() {
alert('cookie foo has changed!');
});
Lưu ý: đây chưa được thử nghiệm và chỉ là một bản demo nhanh chóng như thế nào tôi sẽ tiếp cận vấn đề.
EDIT: Tôi đã thử nghiệm tính năng này ngay bây giờ và nó hoạt động.See example :)
Có một plugin jQuery
cho cookies
.
http://plugins.jquery.com/project/Cookie
Nó không phải là khó khăn để truy cập các tập tin cookie trong một tài liệu html, họ sống trong document.cookie
.
<!-- Add cookie -->
$.cookie('cookieName':'cookieValue');
<!-- get cookie -->
$.cookie('cookieName');
<!-- removecookie -->
$.cookie('cookieName', null);
Ngoài ra còn có các đối số tùy chọn để thêm cookie, ví dụ: hết hạn.
Tuy nhiên, để trả lời câu hỏi của bạn, tôi không thực sự nghĩ rằng bạn có thể áp dụng trình xử lý sự kiện vào cookie không may.
Mã của bạn có cú pháp không đúng. Bạn đang sử dụng nhận xét html trong javascript và dấu hai chấm giữa ''cookieName'' và'' cookieValue'' trong ví dụ đầu tiên cần phải là dấu phẩy. Đó có thể là lý do cho downvote. – benekastah
Biết điều gì đã giúp ích cho điều gì đó kỳ lạ. Tôi đã cố gắng sử dụng Google Dịch (http://translate.google.com/translate_tools?hl=vi) trên một ứng dụng web di động và mọi lúc ngôn ngữ được thay đổi, nó vẫn tiếp tục chèn một thanh ở trên cùng làm con đầu tiên của tài liệu. thân hình . Hiện tại, tôi đang theo dõi cookie 'googtrans' và thực hiện việc này
listenCookieChange('googtrans', function() {
$(document.body).css('top','0px');
});
- 1. Theo dõi/theo dõi của HABTM theo dõi/theo dõi
- 2. Cookie theo dõi Google an toàn
- 3. Trình theo dõi tiến trình theo dõi lưu lượng video?
- 4. Theo dõi Omniture và jQuery
- 5. Nơi đặt cookie theo dõi (vĩnh viễn) trong Rails?
- 6. Làm cách nào để theo dõi cookie hoạt động?
- 7. Theo dõi chuyển hướng và cookie với Python
- 8. Theo dõi các lần đăng nhập bằng cookie PHP
- 9. Bảng theo dõi kiểu theo dõi của Twitter trong SQL
- 10. Golang: cách theo dõi vị trí với cookie
- 11. Theo dõi vị trí của dòng của trình tạo luồng
- 12. google analytics - nhiều trình theo dõi trên một trang (xung đột cookie)
- 13. jQuery theo dõi DOM như thế nào?
- 14. Theo dõi các tệp tương tự với System Monitor/Trình theo dõi ProcessMon/Trình quản lý của Microsoft
- 15. Google Analytics có theo dõi lưu lượng truy cập nếu cookie bị tắt trong trình duyệt của tôi không?
- 16. Theo dõi cái chết của một tiến trình con
- 17. Có trình theo dõi vấn đề nào của Node.js không?
- 18. Trình theo dõi phân tích google của Google NoClassdefFoundError
- 19. Làm cách nào để "cookie theo dõi" của bên thứ ba hoạt động?
- 20. Trình theo dõi đột biến --- subtree
- 21. Theo dõi mạng theo quy trình trong Obj-C?
- 22. Theo dõi phân phối GCM của Android
- 23. cách cookie có thể theo dõi người dùng mặc dù có cùng chính sách gốc?
- 24. Có plugin theo dõi jQuery trừu tượng không?
- 25. Theo dõi chuyển động và theo dõi Blob
- 26. Logic của hệ thống Theo dõi và Theo dõi là gì?
- 27. pixel theo dõi hoặc javascript bao gồm?
- 28. Người dùng ẩn danh theo dõi Django
- 29. Phân tích cú pháp __utmz cookie theo dõi để nhận giới thiệu
- 30. Theo dõi nhiều BackgroundWorkers
Lưu ý: Điều này chỉ được kích hoạt trên các sự kiện thay đổi cookie. Tôi cũng cần kiểm tra ** tạo cookie ** và do đó sửa đổi mã như sau: '... if (cookieRegistry [cookieName] || readCookie (cookieName)! = Null) {...' –
Hi Aron, cảm ơn vì điều này! Rất cảm ơn. Đó là 2017 và Im phải đối mặt với một vấn đề với quy tắc eslint về 'return-return' cho' listenCookieChange() 'trong đó' setInterval' là. Bạn có thể cập nhật câu trả lời của bạn để làm cho eslint hạnh phúc không? Vô hiệu hóa các tác vụ eslint. – Sylar