如何检测浏览器 JavaScript 是否关闭并显示通知

发布于 2024-10-19 16:20:28 字数 55 浏览 1 评论 0原文

我需要检查浏览器 JavaScript 是否关闭,然后显示错误 div 而不是正文,我该怎么做?

I need to check if browser JavaScript is off, then display a error div instead of the body, how can I do this?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

杀手六號 2024-10-26 16:20:28

您需要以相反的方式进行操作 - 可以这么说 - 您必须输出所有内容,然后使用 Javascript 隐藏/删除错误 div。

这就是所谓的渐进增强。

You'll need to do it the other way around - so to speak - you'll have to output everything, and then hide/ remove the error div using Javascript.

It's called Progressive Enhancement.

画中仙 2024-10-26 16:20:28
<html class="no-js">
    <head>
    <style>        
        .error,
        .no-js #container {
            display: none;
        }

        .no-js .error {
            display: block;
        }
    </style>

    <script>
        document.documentElement.className = document.documentElement.className.replace(/\bno-js\b/, '');
    </script>

    </head>
    <body>
        <div id="container">
            rest of page
        </div>
        <div class="error">
            sorry, no javascripty, no sitey!
        </div>
    </body>
</html>

当然,这通常是一个坏主意,但我希望您已经考虑到了这一点。

<html class="no-js">
    <head>
    <style>        
        .error,
        .no-js #container {
            display: none;
        }

        .no-js .error {
            display: block;
        }
    </style>

    <script>
        document.documentElement.className = document.documentElement.className.replace(/\bno-js\b/, '');
    </script>

    </head>
    <body>
        <div id="container">
            rest of page
        </div>
        <div class="error">
            sorry, no javascripty, no sitey!
        </div>
    </body>
</html>

Of course, this is usually a bad idea, but I hope you've already considered that.

我也只是我 2024-10-26 16:20:28

在正文中你可以添加:

<noscript>
      Here the html to display when javascript is off
</noscript>

in the body you can add :

<noscript>
      Here the html to display when javascript is off
</noscript>
允世 2024-10-26 16:20:28

@roryf 的解决方案是一个很好的方法,尽管它依赖于 jQuery,并且如果 domloaded 事件触发得有点晚,您可以获得 no-js 内容的“闪现”。

以下代码将在主体渲染之前删除 html.no-js 类:

<!DOCTYPE html>
<html class="no-js">
<head>
<script>

if (document.documentElement) {
    var cn = document.documentElement.className;
    document.documentElement.className = cn.replace(/no-js/,'');
}

</script>
</head> 

@roryf's solution is a good approach, although it is dependent on jQuery, and if the domloaded event fires a little late you can get a 'flash' of the no-js content.

The following will remove the html.no-js class before the body has rendered:

<!DOCTYPE html>
<html class="no-js">
<head>
<script>

if (document.documentElement) {
    var cn = document.documentElement.className;
    document.documentElement.className = cn.replace(/no-js/,'');
}

</script>
</head> 
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文