Javascript 使用<;noscript>;在<;头>;:好主意还是坏主意?
我注意到Facebook这样做,他们在Javascript 使用<;noscript>;在<;头>;:好主意还是坏主意?,javascript,html,css,noscript,html-head,Javascript,Html,Css,Noscript,Html Head,我注意到Facebook这样做,他们在标签中的中包含了一个元刷新。他们使用这个来检测用户代理是否启用了javascript 我们考虑使用这种方法有两个原因: 自动重定向到非js优化版本的网站,就像facebook一样 为了包括一个非js样式表,希望能够禁用仅javascript锚以及CSS3投诉浏览器上的手指指针,将这些按钮淡出以使其更明显地被禁用(不起作用) 出于上述原因使用此方法是否会导致任何负面影响,从而影响大部分用户代理?对于第二种情况,我建议使用一种方法,首先为元素提供一个no js类
标签中的
中包含了一个元刷新。他们使用这个来检测用户代理是否启用了javascript
我们考虑使用这种方法有两个原因:
出于上述原因使用此方法是否会导致任何负面影响,从而影响大部分用户代理?对于第二种情况,我建议使用一种方法,首先为
元素提供一个no js
类,然后使用JavaScript立即删除该类,并将其替换为一个类js
(或者包含这样的库会自动执行此操作)。通过这种方式,您可以通过在CSS样式前面加上.js
或.no js
前缀,将CSS样式定位于启用和禁用的JavaScript情况
例如,类似这样的事情:
.js span.javascriptOnlyAnchor { cursor: pointer; text-decoration: underline; }
.no-js span.javascriptOnlyAnchor { display: none; }
Paul Irish在这里谈到了更多:不,在头部使用
标签不应该有任何过度的负面影响
也就是说,
有一些缺点:
- 仅当浏览器不支持JavaScript或禁用JavaScript时,它才起作用。如果Javascript被防火墙阻止,则
标记的内容将不可见 - Javascript支持非常差的用户代理仍然会忽略
内容 - 虽然大多数浏览器在头部支持
,但它在技术上是无效的X(HTML),因此您的页面可能无法验证
来禁用它们
如果您依赖HTML5功能,我会推荐该库用于此目的。即使我注意到了这一点,并且我一直在生产网站上使用该库将用户发送到非JS页面,要求他们更新浏览器或启用JS或其他任何可能的方法,我也很想知道这种方法的替代方法和陷阱,向上投票问题建议使用有效的html,例如,我在解析PHP中头部有NOSCRIPT标记的html时遇到问题。您建议在输出缓冲区中的哪一点实际运行js?在头脑里?就在尸体后面?当执行js对html重新分类时,html(理想情况下)仍然是开放的,这一事实不会产生任何问题?我不会安装这个库,但会对它进行自定义编码。这是为数不多的几次在头部使用一点点JavaScript是一个好主意。否则,您仍然容易受到未设置样式(本例中为错误样式)内容的影响。