【问题标题】:<noscript> not working in Opera 11?<noscript> 不能在 Opera 11 中工作?
【发布时间】:2011-05-30 07:52:34
【问题描述】:

我正在测试我的 noscript 标签,它在禁用 javascript 时显示内容,这适用于 Safari、Chrome、Firefox、Camino、IE6、IE7、IE8、IE9,基本上除了 Opera 之外的所有东西(我正在运行版本 11,不确定如果它被隔离到那个版本)。

在 Opera 11 中什么都没有显示... noscript 标签不支持吗?还有什么选择?

不足为奇:

<noscript>Please enable JavaScript.</noscript>

位于body标签之间。

<html>
<body>
<script>alert('Hello World');</script>
<noscript>Hello World!</noscript>
</body>
</html>

【问题讨论】:

  • 知道什么时候会修复这个错误吗?我不得不访问我妻子在教学中使用(啊!)IE 使用的特定网站。
  • 我不会抱太大希望,Opera 多年来一直存在 noscript 标签问题。 Opera 9.64 和 Opera 10 显示 noscript 标签的内容即使开启了javascript,Opera 11 完全不显示。

标签: javascript html opera


【解决方案1】:

这对我很有效...(在 IE、Opera 和 FireFox 中测试)

<p id="js_disabled">
<script type="text/javascript">
  document.getElementById('js_disabled').style.display = 'none';
</script>
  Javascript is disabled or not supported by your browser.<br/>
  Javascript must be enabled...
</p>

JavaScript 立即运行,因此 noscript 消息永远不会出现。

想法是将 JavaScript 代码紧跟在 noscript 的开始标记之后,在本例中为段落标记。

【讨论】:

    【解决方案2】:

    嗯。我在 noscript 中包装了元刷新,这样如果其中的一组元素无法通过 javascript 重新加载,页面可以自动重新加载。我看不到任何替代方案,例如涉及隐藏 CSS 元素的 hack。我最初的想法可能是设置一个元刷新标题,但如果 javascript 可以执行,则覆盖它以完全不刷新,但我看不到 javascript 重新定义页面刷新时间的任何方法。

    【讨论】:

      【解决方案3】:

      嗯,是的。我们(如在 Opera 中)在 Opera 11 中破坏了 &lt;noscript&gt;。已知错误。

      【讨论】:

      • (它应该在几乎所有早期版本中都可以正常工作,并且在将来的某个时候会再次出现......)
      【解决方案4】:

      &lt;noscript&gt; 的实现存在错误且不一致,因此不推荐。你最好做这样的事情:

      <span class="noscript">Please enable JavaScript.</span>
      

      然后,您可以使用 JavaScript 在页面加载时使用“noscript”类隐藏任何内容。禁用 JavaScript 的人会看到该消息,因为它不会被隐藏。

      【讨论】:

        【解决方案5】:

        不推荐使用noscript 元素。如果脚本被部分阻止(例如被公司防火墙或 NoScript 扩展,或者只是临时 DNS 故障),它将无法工作。

        改为Build on things that work

        【讨论】:

          【解决方案6】:

          你确定你在 Opera 中禁用了 javascript:

          菜单>>设置>>首选项>>内容>>取消选择“启用Javascript”

          如果是这样,请在此处发布整个文件的内容。

          编辑


          在他们修复版本 11 中的这个错误之前,我认为很快就会发生,你可以试试这个:

          <script type="text/javascript">
          <!--
          
              document.write("<style type='text/css'>.noScript { display: none; }</style>");
          
          //-->
          </script>
          
          <span class="noScript">Please enable javascript in your browser.</span>
          

          您基本上是使用 javascript 来显示隐藏无脚本消息的 css,但如果禁用 javascript,则无法显示 css,因此将显示消息。

          【讨论】:

          • 是的,它已被禁用...自己尝试一下:
          • @cappuccino ha 我在以前的版本中尝试过,刚刚升级到版本 11,和你一样没有任何显示。猜猜最新的有什么问题。
          • 是的,因为我记得它在以前的歌剧版本中工作过......一定是一个错误。
          【解决方案7】:

          试试这个

          <span class="noscript"></span>
           <noscript>Please enable JavaScript.</noscript>
          

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 2013-06-18
            • 1970-01-01
            • 1970-01-01
            • 2018-04-12
            • 1970-01-01
            • 1970-01-01
            • 2023-03-28
            • 2014-04-05
            相关资源
            最近更新 更多