在<head>中使用<noscript>:好主意还是坏主意?

ano*_*one 8 html javascript css noscript html-head

我注意到Facebook这样做,他们<noscript><head>标签中包含了一个元刷新.他们使用它来检测用户代理是否启用了javascript.

我们考虑使用这种方法有两个原因:

  1. 要自动重定向到Facebook的非js优化版本的网站.
  2. 要包含一个非js样式表,希望在javascript只有锚点以及CSS3投诉浏览器上禁用手指指针,将这些按钮淡出以使其更明显,它们被禁用(不工作).

出于上述原因使用此方法是否会导致影响大部分用户代理的任何不利影响?

Pet*_*son 6

不,通过<noscript>在头部使用标签不应该有任何夸大的不利影响.

也就是说,有一些缺点<noscript>:

  • 它仅在浏览器不支持JavaScript或禁用时才有效.<noscript>如果Javascript被防火墙阻止,则标签的内容将不可见.
  • 支持Javascript的用户代理仍然会忽略<noscript>内容.
  • 虽然大多数浏览器支持<noscript>头部,但它在技术上是无效的X(HTML),因此您的页面可能无法验证.

IMO,你想要做的是一件非常好的事情,并且是对标签的恰当使用.但是,更好的解决方案是在Javascript中使用功能检测来启用Javascript功能,而不是使用<noscript>它们来禁用它们.

如果您依赖HTML5功能,我会推荐Modernizr库用于此目的.