2013-02-09 57 views
0

我使用javascript来隐藏我的网站上的框,然后当用户点击文本区域时,这个特定的框将显示。然而,如果用户出于任何原因离线查看我的网站或者未启用javascript,甚至有时候页面在加载时很慢,应该可以看到这些应该被javascript隐藏的框,并且我想知道如果我可以使用CSS或其他东西来隐藏框,默认情况下,除非由JavaScript调用?如果javascript被禁用,如何避免显示框?

我真的很陌生,如果有人能告诉我我需要做什么,我会很感激。谢谢。

<script> 
      $(function() { 
      $(".search_prompt").hide(); 
      var focusin_flag = false, 
       focusout_flag = false; 
      $("#text").focusin(function() { 
       if (!focusin_flag) { 
        $(".search_prompt").show(); 
        focusin_flag = true; 
       } 
      }).focusout(function() { 
       if (!focusout_flag) { 
        $(".search_prompt").hide(); 
        focusout_flag = true; 
       } 
       function timeout_init() { 
     setTimeout('search_prompt()', 2000); 

       } 

      }); 
     }); 

     </script> 
+3

嗯,如果没有javascript启用,你不能调用一些JavaScript的权利? – soyuka 2013-02-09 16:38:42

回答

1
在你的CSS

设置.search_prompt显示none

.search_prompt 
{ 
    display:none; 
} 

这样,在默认情况下框是隐藏的,那么如果启动Javascript,你可以在需要时显示。

+0

如果JS不可用,除非用户也关闭CSS,否则无法显示内容。 – cimmanon 2013-02-09 20:06:06

+0

@cimmanon:?!他希望box被隐藏起来,直到它们被javascript可见为止。在问题中没有询问“如何在javascript无法显示时显示框”的情况。 – 2013-02-09 20:37:29

1

我认为最好的方法是添加相同的类到你想要隐藏的所有框,如果JS被禁用。

<div class="xyz"> ... </div> 

添加一个类到你的身体,将通过js删除。

<body class="no-js"> ... </body> 
<script> 
    document.body.className = document.body.className.replace('no-js',''); 
</script> 

现在您可以扩展此方法,根据此条件进行尽可能多的样式更改。

.no-js .xyz { 
    display: none; 
}