我的第一个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。
其他人如何能够处理这样的场景?
答案 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