禁用JavaScript时如何显示不同的内容?

时间:2010-02-10 01:16:41

标签: javascript jquery html css

禁用JavaScript时,我需要完全显示不同的内容。我知道我可以使用<noscript>代码...但是如何在禁用JavaScript时隐藏页面的其余部分?

感谢。

6 个答案:

答案 0 :(得分:21)

这是另一种解决方案:

在正常样式表下方的头脑中

<link rel="stylesheet" href="jsdisabled.css" />
<script type="text/javascript">
    document.write('<link rel="stylesheet" href="jsenabled.css" />');
</script>

jsenabled.css会:

#content { display:block; }

而jsdisabled.css会:

#content { display:none; }

虽然以下解决方案有效,但无法验证

在您的noscript标记内,您可以放置​​一些隐藏其余内容的样式标记

即:

<noscript>
    <style type="text/css">
        #content { display:none; }
    </style>
    no js content goes here.
</noscript>

<div id="content">
    content here.
</div>

我喜欢使用此方法,因为它在启用javascript时不会使页面闪烁。

答案 1 :(得分:8)

我不会使用noscript来显示替代内容。例如,<noscript>标记中只有有限数量的标记有效,而<style>不是其中之一。相反,采取不同的方法。默认情况下,当javascript 已禁用时,请将您的内容设为可见,并在启用启用JavaScript时显示备用内容。最好的方法是使用简单的CSS和一行JS。如果你按照我在这里展示的那样做,那就不应该有一个尴尬的内容:

  <head>
     ...
     <script type="text/javascript"> document.documentElement.className += " js"</script>
     <link type="text/css" href="css/style.css" media="all" rel="stylesheet" />
  </head>
  <body>
     <div id="header" class="no_js">header</div>
     <div id="alt_header" class="js">header</div>

     .. etc ..
     <div id="super_duper" class="js">Whatever</div>
  </body>

只需将js应用于启用JavaScript时应显示的所有内容,并将no_js应用于其他所有内容。然后在你的CSS中输入:

html.js .no_js, html .js { display: none }
html.js .js { display: block }

答案 2 :(得分:4)

使用元标记重定向到其他页面。

<noscript> <meta http-equiv="refresh" content="2; URL=enable_javascript.php"> </noscript>

答案 3 :(得分:2)

您可以使用Javascript切换到包含Javascript的其他页面。

例如:

<script type="text/javascript">
    location = "JSEnabled.html";
</script>

Non-javascript content goes here

答案 4 :(得分:1)

以上所有都很好,我相信。 只是另一种选择,你可以试试这个,

<head>
<script type="text/javascript">
//if javascript enabled
window.onload=function(){
 document.getElementById('jsContentWrapper').style.display='block';
}
</script>
</head>
<body>
<div id='jsContentWrapper' style='display:none;'>
 ---
 --
 -
</div>
<noscript>
   Place your javascript disabled content here
</noscript>
</body>

感谢。

答案 5 :(得分:0)

使用内容ID设置div标签。添加禁用javascript时要显示的内容。如果启用了javascript,请使用jquery $("#content ").load("content.html")加载内容。