关闭javascript时如何处理

时间:2010-09-27 08:16:52

标签: javascript jquery spring-mvc

  

可能重复:
  How to detect if JavaScript is disabled?

我的第一个Web应用程序在很大程度上依赖于Javascript和AJAX应用程序。

除了我的登录页面,大多数页面在向服务器提交数据时都依赖于Javascript和Ajax。 我一直在考虑这个,如果用户禁用他/她的javascript,那么我的应用程序就不会有相应的行为。

我在登录页面中使用了此代码

<NOSCRIPT>
    Javascript is required to run this pages.  Please turn it on or ask help from techsupport if you dont know how to enable it
</NOSCRIPT>

虽然我认为不相关,但为了向所有人提供信息,我使用了Spring MVC 2.5和Jquery。

其他人如何能够处理这样的场景?

5 个答案:

答案 0 :(得分:6)

我认为要求JavaScript运行您的应用程序是件好事。所有主流的网络浏览器都拥有它,并且在过去的10年中已经拥有它。

使用<noscript>标记是向用户展示他们需要JavaScript的可接受方式。我不明白你关于禁用登录按钮的意思...你用JavaScript来检测JavaScript是否被禁用(“我用jquery检查是否存在这个标签”)?

您应该做的是默认情况下禁用登录按钮,然后使用JavaScript(jQuery)启用它。这样,只有在用户启用了JavaScript时才会启用它。

答案 1 :(得分:4)

你应该做的是这样的事情

<noscript>
    <meta http-equiv="refresh" content="url=/?nojs=true">
</noscript>

一旦解析了标题,这将立即刷新html,允许你做一些不同的事情。

服务器端:(在我的情况下为PHP)

if(isset($_GET['nojs']) && !isset($_SESSION['no_script']))
{
    $_SESSION['no_script'] = true; //Or cookie
}

然后,当您在会话/ cookie中锁定变量时,您可以为非JavaScript用户丢弃不同的页面。

答案 2 :(得分:0)

如果你的应用程序无法在没有javascript的情况下工作,这是公平的,我认为你的方法是完全合理的。让他们知道并阻止他们进入你的网站,直到js运行。这比让你的应用程序失败更好。

话虽如此,如果可以让你的应用程序在没有javascript的情况下工作,那么判断是否值得努力是一种判断。

答案 3 :(得分:0)

  

我使用jquery检查是否存在此标记,然后禁用“登录”按钮。

我认为如果你需要大量的javascript就禁用登录按钮会更好。然后就做$('#login').attr('disabled',false);。如果未禁用javascript,则会启用登录按钮。

另外,添加一些告诉好消息的div,用css设置样式,然后在打开JS时删除它。

但是我应该警告你也要检查服务器端以确保。因为如果我使用firebug,我可以轻松启用按钮1,2,3。要检查服务器端,可能会对会话或cookie进行.ajax()调用。然后采取相应行动当有人登录时,请检查该变量。

答案 4 :(得分:0)

5!如果您的Web应用程序严重依赖于JavaScript,我的建议是包含<noscript>标记。然后,您可以告知用户如何启用它:www.enable-javascript.com