禁用JavaScript时,我需要完全显示不同的内容。我知道我可以使用<noscript>
代码...但是如何在禁用JavaScript时隐藏页面的其余部分?
感谢。
答案 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")
加载内容。