2

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

4

4 回答 4

7

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

它被称为渐进增强。

于 2011-02-28T09:52:33.300 回答
6
<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>

当然,这通常是个坏主意,但我希望你已经考虑过了。

于 2011-02-28T09:53:18.900 回答
4

在正文中,您可以添加:

<noscript>
      Here the html to display when javascript is off
</noscript>
于 2011-02-28T09:53:12.613 回答
1

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

以下将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> 
于 2011-02-28T10:18:35.910 回答