如何检测用户是否禁用了JavaScript?

时间:2010-05-30 23:02:12

标签: javascript detect browser-detection

我正和一位朋友讨论过没有在浏览器中启用javascript的用户,以及如何向他们展示您网站的“无javascript”版本。

是否有可能,怎么做?

思想?

7 个答案:

答案 0 :(得分:16)

不要尝试构建单独的JS和非JS版本的站点。构建一个非JS版本然后enhance it with JS。这样可以更轻松地重用代码,允许您对整个堆栈使用object/feature detection,并且如果开发人员更新网站的一个分支,则不会将没有JavaScript的用户留下来的可能性降低但不是另一个。

答案 1 :(得分:7)

如果您的意思是javascript,请查看<noscript> HTML标记。

答案 2 :(得分:4)

如果您正在谈论JavaScript并希望为没有JavaScript的人提供替代版本的网站,只需在没有网站的情况下将其放在页面顶部:

<script type="text/javascript">
     location.replace('http:javascript-version-of-your-site');
</script>

答案 3 :(得分:1)

像这样:

<html>
<head>
<noscript>
<meta http-equiv="refresh" content="0;url=http://foo/noscript.htm" />
</noscript>
</head>
<body>
...

如果浏览器上没有启用脚本,则只会执行元刷新(声明性重定向)。当然,只有具有javascript引擎的浏览器才能理解noscript标记。如果你想要捕获根本没有javascript的浏览器(我不知道很多),那么这将无效。

答案 4 :(得分:1)

我使用JavaScript和CSS的这种组合

<html>
<style type="text/css">
    .js-on
    {
        display: none;
    }
    .js-off
    {
        background: red;
        color: White;
    }
 </style>
 <div id='jsdetect' class='js-off'><b>Javascript is OFF</b></div>
 <script type="text/javascript">
    document.getElementById('jsdetect').className = 'js-on';
 </script>

</html>

如果您的唯一目的是告诉用户Javascript不可用且该网站无法正常工作,那么这将非常有用。

答案 5 :(得分:0)

您可以添加一些代码来记录/跟踪/提醒您使用该标记禁用JavaScript的用户。

<noscript>
   // Do Something
</noscript>

答案 6 :(得分:0)

对您开放的另一个选项是明显的noscript标记,即使用JavaScript删除cookie,然后测试该cookie并适当地传递内容。 javascript ver vs non redirect或span

只是以为我会把它丢在那里..