【发布时间】:2011-01-11 08:17:56
【问题描述】:
我在这里发现了一些好的缺点:
noscript 元素仅检测浏览器是否启用了 JavaScript。如果在防火墙中而不是在浏览器中禁用了 JavaScript,则 JavaScript 将不会运行,并且不会显示 noscript 元素的内容。
许多脚本依赖于所支持语言的一个或多个特定功能才能运行(例如 document.getElementById)。在不支持所需功能的情况下,JavaScript 无法运行,但由于支持 JavaScript 本身,因此不会显示 noscript 内容。
使用 noscript 元素最有用的地方是在页面的头部,它可以选择性地确定在页面加载时将哪些样式表和元元素应用于页面,而不必等待直到页面加载完毕。不幸的是,noscript 元素仅在页面正文中有效,因此不能在头部使用。
noscript 元素是块级元素,因此只能在禁用 JavaScript 时用于显示整个内容块。它不能内联使用。
理想情况下,网页应该使用 HTML 作为内容,使用 CSS 作为外观,使用 JavaScript 作为行为。使用 noscript 元素是在 HTML 中应用行为,而不是从 JavaScript 中应用。
来源:http://javascript.about.com/od/reference/a/noscriptnomore.htm
我非常同意最后一点。有没有办法制作和添加外部<noscript> 文件?我们应该将<noscript> 放在<head> 中吗?
【问题讨论】:
-
是否还有禁用 javascript 的防火墙?大约 13 年前,我落后于一个,即使在那时也很糟糕。我的猜测是,如今这样的政策是不可能的,因为大约三分之一的网络将不再可用
-
根据最新的规范,
-
noscript标签可以很好的用在页面的head部分。
-
正如其他人所提到的,<noscript> 元素在最新规范中的 中是允许的。
-
我必须在有限的时间内为新网站选择要做什么,所以我选择需要 JavaScript,因为有太多的处理似乎不可能只用 HTML 和 CSS 来完成。我希望所有的手机/移动设备都可以运行 JavaScript。
标签: javascript xhtml web-standards noscript