禁用JavaScript重定向用户

时间:2011-09-27 15:46:45

标签: javascript ajax html5 ria

因此,给定以下标记,如果用户浏览器禁用了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)任何人都可以提出任何有价值的批评,为什么我不应该考虑使用这种技术?

现在它看起来对我来说是一个可行的选择,但我并不完全相信潜在的副作用(例如浏览器不尊重重定向的条件)。

2 个答案:

答案 0 :(得分:2)

  

任何人都可以提出任何有价值的批评,为什么我不应该考虑使用这种技术?

你的系统非常脆弱。如果JS因任何原因失败,它将完全破坏。搜索引擎可以捕获网站的两个版本,并将人们链接到“错误”的版本。

所以不要这样做。使用feature detectionbuild 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并不总是有任何替代方法。