【问题标题】:How to check if javascript is disabled?如何检查javascript是否被禁用?
【发布时间】:2010-01-19 23:40:06
【问题描述】:

如何检查用户是否在浏览器中禁用了 javascript?例如:如果您在 firefox 中禁用 javascript,stackoverflow 站点会在顶部显示红色警告 div?如何做到这一点?

我注意到的另一件事是:如果禁用 cookie,stackoverflow 将不起作用。当您单击登录按钮时,它不会让您登录。实际上,这也是我对我的网站的假设,用户登录/会话数据取决于 cookie、UI 布局等。取决于 javascript。

这里我不想讨论设计原则(渐进增强等),谁能告诉我一个检查cookies、javascript是否启用的好方法?我认为它必须在服务器端完成,对吧?

谢谢

【问题讨论】:

    标签: javascript cookies


    【解决方案1】:

    在页面中添加<noscript> 标签,如果禁用了 JavaScript,则会向用户显示消息。

    您还可以根据运行JavaScript代码的成功来检测是否启用了JavaScript

    • 添加隐藏字段并将其默认值设置为false
    • 运行一些将值设置为true的javascript代码
    • 回帖时,请检查值。

    要检查 cookie,请设置一个 cookie 并尝试读取它。如果成功,则启用 cookie。

    【讨论】:

    • 更具体地说,使用
    • 请注意,noscript 的呈现仅在浏览器不支持 JavaScript 且用户禁用它时才会发生。如果 JavaScript 错误导致 JS 执行停止,它将不会呈现。
    【解决方案2】:
    <!-- 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 重定向。
    • 这对 SEO 不利,因为搜索引擎爬虫无法跟踪 javascript 重定向。
    • 也许曾几何时,但 googlebot 肯定会跟随我的。
    • 添加了“真实”链接,以防万一。
    【解决方案3】:

    使用 noscript 标签:

    <script>
    document.write("JS is enabled!");
    </script>
    <noscript>JS is disabled !</noscript>
    

    来源:http://www.w3schools.com/tags/tag_noscript.asp

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-10-13
      • 2019-11-06
      • 2022-01-20
      • 1970-01-01
      • 2011-09-20
      • 1970-01-01
      • 2017-03-07
      • 2011-04-25
      相关资源
      最近更新 更多