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

如何检测用户是否禁用了javascript?,javascript,detect,browser-detection,Javascript,Detect,Browser Detection,我和一位朋友谈到了那些浏览器中没有启用javascript的用户,以及如何向他们展示“没有javascript”版本的网站 有可能吗?如何做到 想法?如果你指的是javascript,请查看HTML标签。不要尝试构建单独的JS和非JS版本的网站。构建一个非JS版本,然后。这使得代码更易于重用,允许您对整个堆栈进行使用,并且如果开发人员更新站点的一个分支而不是另一个分支,那么没有JavaScript的用户就不太可能落后。您可以使用标记记录/跟踪/提醒您禁用JavaScript的用户 <nos

我和一位朋友谈到了那些浏览器中没有启用javascript的用户,以及如何向他们展示“没有javascript”版本的网站

有可能吗?如何做到


想法?

如果你指的是javascript,请查看
HTML标签。

不要尝试构建单独的JS和非JS版本的网站。构建一个非JS版本,然后。这使得代码更易于重用,允许您对整个堆栈进行使用,并且如果开发人员更新站点的一个分支而不是另一个分支,那么没有JavaScript的用户就不太可能落后。

您可以使用标记记录/跟踪/提醒您禁用JavaScript的用户

<noscript>
   // Do Something
</noscript>

//做点什么

如果您正在谈论JavaScript,并且希望为没有JavaScript的用户提供站点的替代版本,只需为他们提供没有JavaScript的站点,并将其放在页面顶部:

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

replace('http:javascript版本的站点');
像这样:

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

...

只有在浏览器上没有启用脚本时,才会执行元刷新(声明性重定向)。当然,noscript标记只被具有javascript引擎的浏览器理解。如果您试图捕获完全没有javascript(我不知道有多少)的浏览器,那么这是行不通的。

另一个选择是使用javascript删除cookie,然后测试cookie并适当地交付内容,而不是明显的noscript标记。javascript版本与非重定向或跨度


我只是想把它放在那里。

我使用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已关闭
document.getElementById('jsdetect')。className='json';

如果你的唯一目的是告诉用户Javascript不可用,并且该网站无法运行,那么它会很有用。

@BalusC:也许你是对的,但是,您是如何得出结论,认为标题中出现的单一JavaScript比正文中出现的两次Java更重要?我认为@BalusC正在处理这个徽章:)相反更好-您可以通过将更常见的场景作为默认场景来避免重定向。请参阅下面我的评论。元刷新选项也是一个好主意,但可能对搜索引擎不友好,并且可能会导致浏览器的“后退”按钮出现问题,一些允许禁用JS的浏览器仍然会忽略
noscript
元素。这不是不尊重,而是“增强”你所说的将是一个令人失望的低阶。要么这样,要么你从一开始就把目标放低。否则,你仍然会得到该站点的两个不同版本,这两个版本都需要维护。至于Robusto,它实际上不是该站点的两个版本。它始终是一个工作站点,但为javascript用户提供了额外的功能。多沃德先生的建议非常贴切,并与多年来之不易的可用性数据相一致。根据我的经验,它使网站更具容错性,也更易于维护。一些使用JS引擎的浏览器会忽略
noscript
标记,但在禁用时不会执行任何JS,从而使页面失去功能。noscript元素不允许作为head元素的子元素,元元素可能不是noscript元素的子元素。哦,w3的建议。建议,而不是规则。如果严格执行HTML,万维网将会小得多。