时间:2010-12-24 07:56:19

标签: javascript html opera

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

在Opera 11中没有显示任何内容......是否不支持noscript标签?什么是替代方案?

没什么好奇的:

<noscript>Please enable JavaScript.</noscript>

位于身体标签之间。

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

7 个答案:

答案 0 :(得分:8)

您确定在Opera中禁用了javascript:

菜单&gt;&gt;设置&gt;&gt;偏好设置&gt;&gt;内容&gt;&gt;取消选择“启用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因此消息将显示。

答案 1 :(得分:6)

呃,是的我们(如在Opera中)在Opera 11中打破了<noscript>。已知错误。

答案 2 :(得分:1)

<noscript>的实施有缺陷且不一致,不推荐。你最好做一些事情:

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

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

答案 3 :(得分:1)

槽糕。我在一个noscript中包含了一个元刷新,这样如果一个页面中的某些元素无法通过javascript重新加载,页面就会自动重新加载。我看不到像隐藏CSS元素的黑客那样的替代方案。我最初的想法可能是设置一个元刷新标题,但如果javascript可以执行则覆盖它根本不刷新,但我看不到任何方法让javascript重新定义页面刷新时间。

答案 4 :(得分:0)

试试这个

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

答案 5 :(得分:0)

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

Build on things that work代替。

答案 6 :(得分: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的开始标记之后,在本例中为段落标记。