如何检测用户浏览器中的 JavaScript 或 Cookies 是否被禁用并通知他任何帮助?
如何检测 JavaScript 和/或 Cookie 是否被禁用?
IT技术
javascript
2021-03-09 07:18:00
6个回答
要检查 cookie,您可以使用:
function checkCookie(){
var cookieEnabled = navigator.cookieEnabled;
if (!cookieEnabled){
document.cookie = "testcookie";
cookieEnabled = document.cookie.indexOf("testcookie")!=-1;
}
return cookieEnabled || showCookieFail();
}
function showCookieFail(){
// do something here
}
// within a window load,dom ready or something like that place your:
checkCookie();
并且为了检查 JavaScript 使用<noscript>
带有某种消息的标签
更新 (6/25/18):
很多这样的帖子,包括我的,都是从Modernizr中提取的片段。随着 Modernizr 代码的更新,它们最终都会过时。
我认为这个问题的最佳答案应该是直接使用 Modernizr。
if (Modernizr.cookies) {
// supported
} else {
// not-supported
}
原始答案 (5/11/17):
这直接取自Modernizr,与本文中的其他解决方案相比,它适用于更多浏览器。
https://github.com/Modernizr/Modernizr/commit/33f00fbbeb12e92bf24711ea386e722cce6f60cc
function checkCookie(){
// Quick test if browser has cookieEnabled host property
if (navigator.cookieEnabled) return true;
// Create cookie
document.cookie = "cookietest=1";
var ret = document.cookie.indexOf("cookietest=") != -1;
// Delete cookie
document.cookie = "cookietest=1; expires=Thu, 01-Jan-1970 00:00:01 GMT";
return ret;
}
由于 cookie 检测在 IE 11 中不起作用,我建议使用 Modernizr 方法:
function areCookiesEnabled() {
try {
document.cookie = 'cookietest=1';
var cookiesEnabled = document.cookie.indexOf('cookietest=') !== -1;
document.cookie = 'cookietest=1; expires=Thu, 01-Jan-1970 00:00:01 GMT';
return cookiesEnabled;
} catch (e) {
return false;
}
}
https://github.com/Modernizr/Modernizr/blob/master/feature-detects/cookies.js
这是最简单的方法
if (navigator.cookieEnabled) {
document.write("Cookies Enabled");
} else
{
document.write("Oops Cookies Not Enabled");
}
Check if Cookies Enabled in Your Browser:
<br />
// Example[1]: if ( hasCookies() )
/**
* @hasCookies: Check if cookie's are Enabled
* @param {none} ''
* @return {BOOLEAN} true|false
*/
function hasCookies() {
return (navigator.cookieEnabled);
}
// Example[2]: if ( JLS.TEST.COOKIE() )
// Java Pattern ( How to write usable JS)
/** @namespace JLS classes and functions. */
var JLS = JLS || {};
/**
* TEST utility
* @namespace JLS
* @class TEST
*/
JLS.TEST = {
/**
* @public-method COOKIE
* @COOKIE Check if cookie's are Enabled
* @return {BOOLEAN} true|false
*/
COOKIE: function () {
//Change this (library). Not main.js (Algorithm)
return (navigator.cookieEnabled);
}
};
其它你可能感兴趣的问题