我注意到 Facebook 这样做是因为他们在 <noscript>
中包含元刷新包含在 <head>
中标签。他们使用它来检测用户代理是否启用了 javascript。
我们考虑使用这种方法有两个原因:
- 像 facebook 一样自动重定向到网站的非 js 优化版本。
- 要包含一个非 js 样式表,以希望在仅 javascript anchor 以及 CSS3 兼容浏览器上禁用手指指针,使这些按钮淡出以使其更明显地被禁用(而不是工作)。
由于上述原因使用这种方法是否会产生影响大部分用户代理的不良影响?
最佳答案
不,使用 <noscript>
不应该有任何过度的副作用。标记在头上。
也就是说,<noscript>
有一些缺点:
- 它仅在浏览器不支持 JavaScript 或禁用时有效。
<noscript>
的内容如果 Javascript 被防火墙阻止,标记将不可见。 - Javascript 支持很差的用户代理仍然会忽略
<noscript>
内容。 - 虽然大多数浏览器都支持
<noscript>
在头部,它在技术上是无效的 X(HTML),因此您的页面可能无法验证。
IMO,你想要做的是一件非常好的事情,并且是对标签的适当使用。但是,更好的解决方案是在 Javascript 中使用功能检测来启用 Javascript 功能,而不是使用 <noscript>
。禁用它们。
如果您依赖于 HTML5 功能,我会推荐 Modernizr用于此目的的库。
关于javascript - 在 <head> : Good idea or bad idea? 中使用 <noscript>,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7052730/