Opera 11中<noscript>无法工作?

5

我正在测试我的noscript标签,当JavaScript被禁用时显示内容。这在Safari、Chrome、Firefox、Camino、IE6、IE7、IE8、IE9中都有效,基本上所有浏览器都支持,但是Opera不支持(我使用的是版本11,不确定是否只限于该版本)。

在Opera 11中没有显示任何内容... noscript标签不被支持吗?还有什么替代方法吗?

没有什么意外的:

<noscript>Please enable JavaScript.</noscript>

位于 HTML 文档的 body 标签之间。

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

这个 bug 什么时候会被修复?我不得不使用(呃!)IE 访问我妻子在教学中使用的特定网站。 - user595871
1
我不会抱太大期望,Opera 处理 noscript 标签的问题已经持续了多年。Opera 9.64 和 Opera 10 即使 JavaScript 被启用,也会显示 noscript 标签的内容,而 Opera 11 则完全不显示它。 - Igor Jerosimić
7个回答

8

您确定在Opera中禁用了JavaScript吗:

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

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

编辑


在他们修复这个错误之前(我认为很快会发生),您可以尝试以下操作:

<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
@cappuccino 哈,我在之前的版本中尝试过,刚升级到11版,像你一样什么也没有显示。猜想最新版可能有些问题。 - George
是的,因为我记得它在以前的 Opera 版本中是可以工作的... 应该是个 bug。 - cappuccino

6

嗯,是的。我们(指Opera浏览器)在Opera 11中破坏了<noscript>标签。这是一个已知的bug。


4
它在早期版本中应该可以正常工作,未来某个时候它会再次正常运行。 - hallvors

1

<noscript>的实现存在缺陷和不一致性,不建议使用。您最好采取以下做法:

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

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

1
嗯,我曾经在noscript中包装了一个meta refresh,以便在页面中的某些元素无法通过javascript重新加载时自动重新加载页面。我看不到任何其他替代方法,例如涉及隐藏CSS元素的黑客技巧。我的最初想法是设置一个meta refresh头,但如果javascript可以执行,覆盖它以完全不刷新,但我看不到javascript重新定义页面刷新时间的任何方法。

0

这对我来说很有效...(在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的开放标签之后,例如段落标签。


0

试一下这个

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

0

noscript元素不建议使用。如果脚本被部分阻止(例如由企业防火墙或NoScript扩展程序,或仅是暂时的DNS故障),则它将无法工作。

相反,请建立在可行的基础之上


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接