如何检查用户是否在浏览器中禁用了javascript?例如:如果你在firefox中禁用javascript,stackoverflow站点会在顶部显示一个红色警告div?怎么做到这一点?
我注意到的另一件事:如果禁用cookie,stackoverflow不起作用。单击登录按钮时,它不会让您登录。实际上,这也是我对我的网站的假设,用户登录/会话数据取决于cookie,UI布局等..取决于javascript。
在这里我不想讨论设计原则(渐进增强等等),有谁能告诉我一个好方法来检查cookie,javascript是否启用?我认为必须在服务器端完成,对吧?
谢谢
答案 0 :(得分:18)
在页面中添加<noscript>
标记,如果禁用JavaScript,则会向用户显示该消息。
您还可以根据运行JavaScript代码的成功来检测JavaScript是否已启用
false
true
要检查Cookie,请设置Cookie并尝试阅读。如果成功,则启用cookie。
答案 1 :(得分:3)
<!-- gatewayPage.php -->
<noscript>
<div style="background-color:red;font-size:14pt;">
This site will be very boring unless you enable Javascript!
</div>
<!-- if you're convinced that bots won't follow your redirect, add this: -->
Proceed to <a href="myRealHomePage.php">MySite</a> anyway
</noscript>
<script>
documment.location = "myRealHomePage.php";
</script>
答案 2 :(得分:0)
使用noscript标签:
struct tm {
int tm_sec; /* Seconds (0-60) */
int tm_min; /* Minutes (0-59) */
int tm_hour; /* Hours (0-23) */
int tm_mday; /* Day of the month (1-31) */
int tm_mon; /* Month (0-11) */
int tm_year; /* Year - 1900 */
int tm_wday; /* Day of the week (0-6, Sunday = 0) */
int tm_yday; /* Day in the year (0-365, 1 Jan = 0) */
int tm_isdst; /* Daylight saving time */
};