如何检测JavaScript和/或Cookie被禁用?
如何检测用户浏览器中的JavaScript或Cookie被禁用并通知他如何检测JavaScript和/或Cookie被禁用?,javascript,Javascript,如何检测用户浏览器中的JavaScript或Cookie被禁用并通知他 有什么帮助吗?有关检查Cookie的信息,您可以使用: function checkCookie(){ var cookieEnabled = navigator.cookieEnabled; if (!cookieEnabled){ document.cookie = "testcookie"; cookieEnabled = document.cookie.indexOf
有什么帮助吗?有关检查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,请使用
标记,标记中包含某种消息尝试..
标记,检查JavaScript是否启用
write(“如果启用JavaScript,将显示此文本”);
如果未启用JavaScript,将显示此文本
这是最简单的方法
if(navigator.cookieEnabled){
文件写入(“启用Cookies”);
}否则
{
文件写入(“未启用Oops Cookies”);
}
检查浏览器中是否启用了Cookies:
更新(2018年6月25日):
包括我在内的许多帖子都是从中摘录的。随着Modernizer代码的更新,它们最终都会过时
我认为这个问题最好的答案应该是直接使用现代化
if (Modernizr.cookies) {
// supported
} else {
// not-supported
}
原始答案(2017年5月11日): 这是直接从这篇文章中获得的,并且比其他解决方案在更多的浏览器中工作
由于cookie检测在IE 11中不起作用,我建议采用Modernizer方法:
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;
}
}
此函数可以查看用户的错误消息,还可以停止脚本执行,并返回cookies状态
function IS_Cookies_Enabled(Show_Message, Stop_Script)
{
if(Show_Message == undefined){
Show_Message = true;
}
if(Stop_Script == undefined){
Stop_Script = false;
}
var Cookie_Status = navigator.cookieEnabled;
if (!Cookie_Status)
{
document.cookie = "Test";
Cookie_Status = document.cookie.indexOf("Test") != -1;
// Delete test cookies
document.cookie = "Test=1; expires=Thu, 01-Jan-1970 00:00:01 GMT";
}
if((!Cookie_Status) && (Show_Message))
{
document.getElementsByTagName('body')[0].innerHTML = "<div style='width: 600px; max-width: 100%; margin: 100px auto;'><h1 style='color: red'>Cookies Required</h1><p style='font-size: 18px;'>Cookies are not enabled on your browser. <br>Please enable cookies in your browser preferences to continue.</p><strong>Sylingo</strong>";
}
if((!Cookie_Status) && (Stop_Script))
{
throw new Error('Cookies is disabled');
}
return Cookie_Status;
}
以及检查JavaScript使用情况:
<noscript>
Javascript is not enabled on your browser.
</noscript>
浏览器上未启用Javascript。
假设启用了JavaScript,这将告诉您是否启用了Cookie。在旧浏览器中工作
// returns 1 or 0 instead of true or false. Returns null if inconclusive.
function cookiesEnabled() {
var i, j, cookies, found;
if (navigator.cookieEnabled===false) return 0;
document.cookie = 'testcookiesenabled=1';
for (i=0; i<2; i++) {
found = false;
cookies = document.cookie.split(';');
j = cookies.length;
while(j--) {
while (cookies[j].charAt(0)==' ') {// trim spaces
cookies[j] = cookies[j].substring(1);
}
if (cookies[j].indexOf('testcookiesenabled=')==0) {
found = true;
break;
}
}
if (!found) {
return i;
}
// Delete test cookie.
document.cookie = 'testcookiesenabled=; expires=Thu, 01 Jan 1970 00:00:01 GMT';
}
// Results inconclusive.
}
//返回1或0,而不是true或false。如果不确定,则返回null。
函数cookiesEnabled(){
变量i,j,cookies,发现;
if(navigator.cookieEnabled==false)返回0;
document.cookie='testcookiesenabled=1';
对于(i=0;i,此JavaScript函数一直适用于我:
if (typeof areCookiesAllowed !== 'function')
{
function areCookiesAllowed()
{
var cookies_allowed = navigator.cookieEnabled;
if (!cookies_allowed)
{
try
{
var cur_dt = new Date();
var cur_tm = cur_dt.getTime();
document.cookie = 'cookie_test_' + cur_tm + '=1';
cookies_allowed = document.cookie.indexOf('cookie_test_' + cur_tm + '=') !== -1;
document.cookie = 'cookie_test_' + cur_tm + '=1; expires=Thu, 01-Jan-1970 00:00:01 GMT';
}
catch(err)
{
return false;
};
};
return cookies_allowed;
};
};
if(允许的ArecookiesTypeof!=“函数”)
{
函数areCookiesAllowed()
{
var cookies_allowed=navigator.cookieEnabled;
如果(!cookies_允许)
{
尝试
{
var cur_dt=新日期();
var cur_tm=cur_dt.getTime();
document.cookie='cookie_test_'+cur_tm+'=1';
允许cookies=document.cookie.indexOf('cookie\u test'+cur\u tm+'=')!=-1;
document.cookie='cookie\u test'+cur\u tm+'=1;expires=1970年1月1日星期四00:00:01 GMT';
}
捕捉(错误)
{
返回false;
};
};
允许退货;
};
};
var result_elmt=document.getElementById(“结果”);
var结果;
如果(areCookiesAllowed()==真)
{
结果='祝贺您!此Web浏览器和此网站上已启用Cookie!';
}
其他的
{
结果='Aww Snap!不幸的是,此Web浏览器中未启用cookie或此网站上已禁用cookie';
};
result_elmt.innerHTML=结果;
警报(结果);
如果禁用了JavaScript,将如何运行脚本来检测它?打开JavaScript的脚本请注意,禁用JS时不会运行此脚本:)如果编写了testcookie,则应在之后将其删除。为什么要测试typeof navigator.cookieEnabled==“undefined”
?navigator.cookieEnabled实际设置为false类型是否正确?如果IE的隐私选项设置为High
,这将不起作用。在此模式下navigator.cookieEnabled
为true
但文档。cookie
始终为空。最好的方法是删除checkCookie()的第一个测试:函数checkCookie(){document.cookie=“testcookie”;var cookieEnabled=(document.cookie.indexOf(“testcookie”)!=-1)?true:false;return(cookieEnabled)?true:showcokiefail();}
无法在IE11中正确检测,您可以在此处进行测试:您的示例中的
是错误的。如果启用了JavaScript,则
中的文本不会显示为HTML,而是作为JavaScript程序执行。这个答案毫无意义。为什么要使用If(hasCookies())而不是If(navigator.cookieEnabled)?深度糖化层:)你的权利,这是一些JS 101。因此,我添加了第二个示例(可重用代码)。不管怎样,忘记客户端cookie;查看“window.localStorage”。这比@Noah Solomon的答案更为最新
<noscript>
Javascript is not enabled on your browser.
</noscript>
// returns 1 or 0 instead of true or false. Returns null if inconclusive.
function cookiesEnabled() {
var i, j, cookies, found;
if (navigator.cookieEnabled===false) return 0;
document.cookie = 'testcookiesenabled=1';
for (i=0; i<2; i++) {
found = false;
cookies = document.cookie.split(';');
j = cookies.length;
while(j--) {
while (cookies[j].charAt(0)==' ') {// trim spaces
cookies[j] = cookies[j].substring(1);
}
if (cookies[j].indexOf('testcookiesenabled=')==0) {
found = true;
break;
}
}
if (!found) {
return i;
}
// Delete test cookie.
document.cookie = 'testcookiesenabled=; expires=Thu, 01 Jan 1970 00:00:01 GMT';
}
// Results inconclusive.
}
<noscript>JavaScript is disabled. Please enabled JavaScript.</noscript>
if (typeof areCookiesAllowed !== 'function')
{
function areCookiesAllowed()
{
var cookies_allowed = navigator.cookieEnabled;
if (!cookies_allowed)
{
try
{
var cur_dt = new Date();
var cur_tm = cur_dt.getTime();
document.cookie = 'cookie_test_' + cur_tm + '=1';
cookies_allowed = document.cookie.indexOf('cookie_test_' + cur_tm + '=') !== -1;
document.cookie = 'cookie_test_' + cur_tm + '=1; expires=Thu, 01-Jan-1970 00:00:01 GMT';
}
catch(err)
{
return false;
};
};
return cookies_allowed;
};
};