检测JavaScript是否已启用

时间:2010-05-13 19:25:34

标签: c# javascript

有没有办法通过C#代码检测JavaScript是启用还是禁用?如果我使用JQuery开发网站,如果未启用JavaScript,那么我该怎么办?我该怎么处理呢?

3 个答案:

答案 0 :(得分:5)

C#无法确定这一点。 C#在服务器上运行并将输出发送到客户端。它不知道客户端是否有能力/愿意运行JavaScript。

此外,脚本也永远不会真正知道这一点,因为它无论如何都没有执行。

您可以对已禁用的JavaScript“做出反应”的唯一方法是使用<noscript>标记向您的用户建议您的网站需要JavaScript。

您可以在StackOverflow上看到此示例。关闭JavaScript,刷新网站,您将看到:

<noscript> 
    <div id="noscript-warning">Stack Overflow works best with JavaScript enabled<img src="http://pixel.quantserve.com/pixel/p-c1rF4kxgLUzNc.gif" alt="" class="dno"></div> 
</noscript>

答案 1 :(得分:1)

CodeProject上的

This article有一个实现可以为你检查它,但据我所知,它需要初始往返浏览器以检查是否启用了javascript。 我自己没有试过,所以我不能告诉你它是否有效,但我认为没有理由不这样做。

我希望这会以某种方式帮助你。

答案 2 :(得分:1)

您可以使用的最佳方法是采用“progressive enhancement”策略来构建应用程序。使用javascript来增强可用性的最好方法是从没有它开始。

如果您想要一段代码来检测重定向到无javascript的页面,那么您可以使用一个简单的方法,使用包含以下元素的简单页面来检测并将用户重定向到您需要的位置:

1.-一个META标题,重定向到一个页面,只要用户没有启用javascript就会处理该页面。 2.-内容中的一个脚本,它将“位置”更改为另一个页面,只要用户启用了javascript,该脚本就会处理。

一个简单的页面看起来像


<html>
    <head>
        <title>Sample Page</title>
        <meta http-equiv="refresh" content="2;url=/page_no_javascript_enabled.aspx" />
        </head>
    <body>
        <script language="javascript" type="text/javascript">
            document.location='/page_with_javascript_enabled.aspx';
        </script>
        <h1>Please wait ...</h1>
    </body>
</html>