如何检查JavaScript是否已禁用?

8
如何检查用户是否在浏览器中禁用了JavaScript?例如:如果您在Firefox中禁用了JavaScript,则stackoverflow网站会在顶部显示红色警告div。如何实现这一点?
我还注意到了另一件事情:如果禁用cookies,则stackoverflow将不起作用。当您单击登录按钮时,它将不允许您登录。实际上,我的网站也是如此,用户登录/会话数据取决于cookies,UI布局取决于JavaScript。
在这里,我不想讨论设计原则(渐进增强等),请问有没有人能告诉我一个好的方法来检查cookie、javascript是否启用?我认为这必须在服务器端完成,对吗?
谢谢
3个回答

18
在页面中添加一个`

更加具体地说,对于禁用JavaScript的警告,请使用<noscript>标签;如果启用了js,请使用navigator.cookieEnabled检查客户端是否启用了cookies。 - WilliamLou
请注意,noscript的渲染仅在浏览器不支持JavaScript或用户已禁用JavaScript时发生。如果JavaScript错误导致JS执行停止,则不会呈现它。 - Aaron Gustafson

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>

我只希望搜索蜘蛛能够遵循JavaScript重定向。 - epascarello
这对SEO很不利,因为搜索引擎爬虫无法跟踪JavaScript重定向。 - Livingston Samuel
也许曾经是这样,但Googlebot肯定会遵循我的。 - egrunin
添加了“真实”的链接,以防万一。 - egrunin

0

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接