【问题标题】:How to show hidden div when javascript is disabled?禁用javascript时如何显示隐藏的div?
【发布时间】:2010-05-27 15:47:01
【问题描述】:

我正在使用display:none 隐藏div,而这个div 仅在我们点击+ 图标时显示。但是如果 JavaScript 被禁用,那么我想默认显示 div。如何做到这一点?

我现在不能发布整个代码。

jQuery(document).ready(function() {
  jQuery('a#toggle').click(function() {
       jQuery('#map').slideToggle(400);
       return false;

});

CSS

#map {display:none}

【问题讨论】:

标签: jquery css xhtml


【解决方案1】:

只有在启用 Javascript 时才隐藏它:

<head>
    <script type="text/javascript" charset="utf-8">
        document.write('<style type="text/css" media="screen">#map { display: none; }</style>');
    </script>
</head>

【讨论】:

  • 我觉得这是对上面2个更好的解决方案,因为其他的会导致你的页面一旦加载就会闪烁,如果启用了JS,所有的div都会被jQuery隐藏。我建议只在 &lt;noscript&gt;&lt;/noscript&gt; 标签中包含一个不同的样式表,它只是用 display:block; 覆盖默认的 display:none;
  • @strelok 问题是&lt;noscript&gt; 不能在&lt;head&gt; (AFAIK) 中使用。
  • 你是对的。但是,是的,无论哪种方式,您的解决方案都比使用 javascript 在页面加载时隐藏所有 div 要好得多。
  • 现在工作我刚刚添加了 `document.write(''); ' 在我的外部 javascript 顶部
【解决方案2】:

你可以使用 noscript 标签:

<noscript>
<style type="text/css" media="screen">#map { display: block !important; }</style>
</noscript>

【讨论】:

    【解决方案3】:

    在服务器上渲染时,不要将 display:none 设置为该 div。在使用 JavaScript 在客户端集 display:none 上加载页面期间。

    【讨论】:

      【解决方案4】:

      我认为

      <noscript>Your browser does not support JavaScript!</noscript>
      

      这将是一个更好的主意,其他

      &lt;noscript&gt;标签内放置如果javascript未启用时要显示的分区

      【讨论】:

      • 如果客户端禁用了javascript,那么你的外部js无论如何都不会工作
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-01-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-04-04
      • 2021-02-05
      相关资源
      最近更新 更多