因此,给定以下标记,如果用户浏览器禁用了JavaScript,它们将被重定向到备用页面,该页面尝试模拟没有JavaScript的站点功能(可能是动态呈现的页面)或警告页面,通知必须启用JavaScript才能使用该站点的用户
<!doctype html>
<html>
<head>
<!-- If the browser has javascript disabled, the browser will be redirected-->
<!-- to a page that does not require javascript to function, or informs the-->
<!-- the user of the requirement for javascript to be enabled-->
<noscript>
<meta http-equiv="refresh" content="5; url=/warning.html"/>
</noscript>
<title>
Page Title
</title>
</head>
<body>
<script>
// rich client logic
</script>
</body>
</html>
根据this html5 validator以及w3c validator判断,上面的内容似乎是有效的html5。我正在考虑使用这种技术来管理没有启用JavaScript的用户,从而无法使用我正在计划的单页应用程序,但我之前没有看过它,并且想知道是否
(a)有人在生产之前使用过这种技术,并且愿意分享他们的经验
(b)任何人都可以提出任何有价值的批评,为什么我不应该考虑使用这种技术?
现在它看起来对我来说是一个可行的选择,但我并不完全相信潜在的副作用(例如浏览器不尊重重定向的条件)。
答案 0 :(得分:2)
任何人都可以提出任何有价值的批评,为什么我不应该考虑使用这种技术?
你的系统非常脆弱。如果JS因任何原因失败,它将完全破坏。搜索引擎可以捕获网站的两个版本,并将人们链接到“错误”的版本。
所以不要这样做。使用feature detection和build on things that work。
答案 1 :(得分:1)
我使用这种技术,效果非常好。我只是将这一行添加到无JavaScript页面:
<META NAME="ROBOTS" CONTENT="NOINDEX, FOLLOW">
我过去常常不同意这种做法,并建议逐步增强,但这样做是没有意义的,因为:
1:大约1%的用户会禁用JavaScript,这比支持他们的工作多1%多。 (去年的统计数据见:http://developer.yahoo.com/blogs/ydn/posts/2010/10/how-many-users-have-javascript-disabled/)
2:javascript并不总是有任何替代方法。