如何在javascript禁用时包装<noscript>标签以隐藏内容

23 noscript

比方说,我有这样的HTML代码:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
</head>

<body>
This is content.
</body>
</html>
Run Code Online (Sandbox Code Playgroud)

我想在<noscript>那里添加一个标签.这意味着,如果禁用JavaScript,它将显示为空白页面.

只有在禁用JavaScript时,它才会显示"这是内容文本".

请给我一些实例来实现.谢谢.

Dan*_*izu 53

rahul建议的JS方法的替代方法是在<noscript>元素中显示div ,覆盖整个页面:

<noscript>
    <div style="position: fixed; top: 0px; left: 0px; z-index: 3000; 
                height: 100%; width: 100%; background-color: #FFFFFF">
        <p style="margin-left: 10px">JavaScript is not enabled.</p>
    </div>
</noscript>
Run Code Online (Sandbox Code Playgroud)

  • 辉煌!我会upvote它但我没有启用JavaScript .. :-) (23认同)

rah*_*hul 22

使用display none将所有内容包装在主div中,并在onload函数中将显示更改为block.

<html xmlns="http://www.w3.org/1999/xhtml">
<head>
  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  <title>Untitled Document</title>
</head>
<body>
  <div id="divMain" style="display: none">
    This is content.
  </div>
<noscript>
  JS not enabled
</noscript>
<script>
  document.getElementById("divMain").style.display = "block";
</script>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)


Noo*_*ilk 5

这有点奇怪.

你甚至不需要'noscript'.你可以只有一个空白的第一页,谁的内容只是表格的javascript:

document.location = '/realpage.htm';
Run Code Online (Sandbox Code Playgroud)

然后OnLoad使用jQuery或其他任何东西调用它.这将意味着如果客户端没有脚本,他们不会去任何地方,因此页面保持空白.

编辑:

示例,根据要求:

<html>
<body onload="document.location = 'realpage.html';">
</body>
</html>
Run Code Online (Sandbox Code Playgroud)


Guf*_*ffa 5

noscript标签工作周围的其他方法.要在启用脚本时使内容可见,请将其放在隐藏的元素中,并使用脚本显示它:

<div id="hasScript" style="display:none">
This is content
</div>
<script>document.getElementById('hasScript').style.display='';</script>
Run Code Online (Sandbox Code Playgroud)