我有一个基于jQuery的web应用。我的要求相当简单:我想使用jQuery来查看用户是否在其web浏览器中启用或禁用了cookies。我知道有一个插件可以用来创建/检索/删除/更新cookie。但是,jQuery有没有办法检测用户代理的设置呢?
发布于 2011-11-13 23:40:06
你不需要jQuery,你可以使用vanilla Javascript:
function are_cookies_enabled()
{
var cookieEnabled = (navigator.cookieEnabled) ? true : false;
if (typeof navigator.cookieEnabled == "undefined" && !cookieEnabled)
{
document.cookie="testcookie";
cookieEnabled = (document.cookie.indexOf("testcookie") != -1) ? true : false;
}
return (cookieEnabled);
}
发布于 2013-08-08 05:20:18
对于navigator.cookieEnabled
,Internet Explorer (至少是版本10 )总是返回true。以下是一种解决此问题的方法:
function areCookiesEnabled() {
var cookieEnabled = navigator.cookieEnabled;
// When cookieEnabled flag is present and false then cookies are disabled.
if (cookieEnabled === false) {
return false;
}
// try to set a test cookie if we can't see any cookies and we're using
// either a browser that doesn't support navigator.cookieEnabled
// or IE (which always returns true for navigator.cookieEnabled)
if (!document.cookie && (cookieEnabled === null || /*@cc_on!@*/false))
{
document.cookie = "testcookie=1";
if (!document.cookie) {
return false;
} else {
document.cookie = "testcookie=; expires=" + new Date(0).toUTCString();
}
}
return true;
}
发布于 2011-11-14 00:26:11
最简单的方法是检查包含浏览器信息的navigator
属性。Reference
您可以使用navigator.cookieEnabled === true
来检测浏览器对cookie的支持。
https://stackoverflow.com/questions/8112634
复制相似问题