【问题标题】:How to detect if browser JavaScript is off and display a notice如何检测浏览器 JavaScript 是否关闭并显示通知
【发布时间】:2011-02-28 09:50:27
【问题描述】:

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

【问题讨论】:

    标签: javascript jquery html noscript


    【解决方案1】:

    你需要反过来做 - 可以这么说 - 你必须输出所有内容,然后使用 Javascript 隐藏/删除错误 div。

    这叫做渐进增强。

    【讨论】:

      【解决方案2】:
      <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>
      

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

      【讨论】:

      【解决方案3】:

      您可以在正文中添加:

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

      【讨论】:

        【解决方案4】:

        @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> 
        

        【讨论】:

        • 谢谢。在巨人的肩膀上;)
        猜你喜欢
        • 1970-01-01
        • 2017-12-17
        • 1970-01-01
        • 1970-01-01
        • 2014-02-21
        • 2018-01-10
        • 2021-10-29
        • 1970-01-01
        • 2020-12-16
        相关资源
        最近更新 更多