【问题标题】:HTML <noscript> tag does not workHTML <noscript> 标签不起作用
【发布时间】:2015-12-11 19:41:41
【问题描述】:

如果禁用了 Javascript,&lt;noscript&gt; 应该会在其中显示文本。

我使用 IE11 并禁用了 JavaScript,只看到一个空白页面,根本没有任何消息。

<head>
<noscript>Javascript is disabled!</noscript>
<script>document.getElementById("demo").innerHTML="Script Enabled";</script>    
</head>
<p id="demo"> Test</p> 

我错过了什么吗?

【问题讨论】:

  • 围绕这个 sn-p 的 html 是什么?
  • 更新了我的问题。
  • noscript 属于主体部分,而不是头部;但这可能无法解决您的问题,很遗憾。
  • 哎呀,我不完全正确,但你应该阅读this page
  • 也许脚本正在运行并抛出错误,因为您正在寻找一个尚不存在的元素。你看控制台了吗?

标签: html


【解决方案1】:

从您上面告诉我们的内容来看,您似乎输入/使用了正确的语法。

我在 Chrome 47 中尝试过,效果很好,也许可以在不同的浏览器中尝试并查看结果,或者确保您确实关闭了 JavaScript。

示例:

<script>
document.write("Hello World!")
</script>
<noscript>Your browser does not support JavaScript!</noscript>

来自 W3Schools - here

你也可以这样做:

$(document).ready(function() {
  $('#noscript-description').css({
    'display' : 'none'
    
    // Just change the none to block to see the results
  });
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<html>
  <body>
    <p id="noscript-description">This can be seen if you <b>DO NOT</b> have JavaScript enabled.</p>
    <!-- I have added in jQuery, if you never realised -->
  </body>
</html>

【讨论】:

    【解决方案2】:

    您的页面适用于我如果 javascript 被禁用:它会在顶部打印“javascript 已禁用”消息。

    但如果我启用它,不会更改“测试”文本,因为脚本在页面加载之前执行。而且即使加载了,也没有&lt;body&gt;,所以document.getElementById会返回null

    一个有效的更正可能是这样的:

    <!doctype html>
    <html>
    <head>
    <noscript>Javascript is disabled!</noscript>
    <script>window.onload=function(){document.getElementById("demo").innerHTML="Script Enabled";}</script>
    </head>
    <body>
    <p id="demo"> Test</p> 
    </body>
    </html>
    

    【讨论】:

    • 有趣。你用过铬吗?
    • 是的。在 IE11 和 Chrome 中测试。两者的行为相同,我的解决方案适用于两者。
    • 技术上 noscript 可以放在 head 中,但是这样做是有限的 w3schools.com/tags/tag_noscript.asp "当在 元素中使用时:
    • 说该页面适合您是 rsky 因为碰巧那个页面确实如此,但如果 noscript 标签有例如 它会失败,因为它在头部并且头部受限
    • 这个答案是非常错误的,将文本放在头部的 noscript 中,如果它有效,那就是侥幸,请参阅 superuser.com/questions/1419742/…stackoverflow.com/questions/55452065/…
    【解决方案3】:

    你应该把 noscript 标签放在 body 标签里面

    【讨论】:

    • 技术上 noscript 可以放在 head 中,但是这样做是有限的 w3schools.com/tags/tag_noscript.asp "当在 元素中使用时:
    • 所以是的,它应该,甚至必须,进入正文,但这只是因为它包含文本。因此,确实当前接受的答案是错误的,它只能通过侥幸获得
    【解决方案4】:

    &lt;script&gt; 标签的放置存在问题,&lt;noscript&gt;abc&lt;/noscript&gt; 标签的放置存在问题。

    A) 为了让您的 &lt;script&gt; 标记正常运行,它应该在正文之后而不是之前运行。 (或者如果放在正文之前,则需要一些额外的代码来确保它等待窗口或 DOM 加载,即 littlesanti 对 window.onload 所做的)

    B) 要使&lt;noscript&gt;abc&lt;/noscript&gt; 标记正确运行,它们应该在正文中,因为它们包含文本。

    【讨论】:

      猜你喜欢
      • 2013-03-23
      • 2013-06-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-10-11
      • 1970-01-01
      • 1970-01-01
      • 2019-03-21
      相关资源
      最近更新 更多