我在PHP中编写了一个相当小的Web应用程序,并打算使用DOJO使其“花哨”,并且很可能在客户端处理一些验证(也会有服务器端验证)。
我想将JavaScript作为我网站的一项要求,因此,如果用户的浏览器禁用了JavaScript,或者无法使用JavaScript,则他们根本无法使用该网站,并收到消息通知他们这个要求。
我见过其他网站这样做,但我无法弄清楚如何执行它
例如,尝试使用username = user和password = user
登录
http://demo.actitime.com/login.do?username=user
我希望在每个页面上都能发生同样的事情。
任何帮助表示感谢。
occhiso
答案 0 :(得分:21)
我不认为这是一种明智的做法。
只需在网站上花一点力气,这样没有javascript的用户也可以访问该网站。不要忘记他们是您的客户。他们可能有充分的理由禁用javascript。
答案 1 :(得分:4)
有两件事让人想起:
<noscript>
标记用于内容;和对于该网站和类似功能的情况,使用带有onclick处理程序的普通按钮而不是提交按钮:
&lt; input type =“button”onclick =“documents.forms [0] .submit();”值= “提交” &GT;
如果没有启用Javascript,则无法提交。
答案 2 :(得分:4)
对此的唯一恰当回应是:“你为什么要这样做?”
真的,一个更好的方法是尝试让它先工作,然后添加花哨的javascript位。这样,禁用javascript的用户仍然可以使用它,即使它的功能有限。
答案 3 :(得分:4)
你知道,这一年是2009年,而不是1997年。这些黑客属于过去,死亡和埋葬就像他们的污秽。
至于有用的答案:请阅读graceful degradation。
至于你的答案:CSS可以完成你在DOJO上所做的事情,完全没有Javascript(至少,你提到的事情)。如果没有启用javascript,它将需要往服务器的往返,这就是全部。我不知道你的'逻辑'是什么意思,但这个术语的规范意义最好用PHP和可能的模板系统来完成而不是使用javascript。
没有往返的输入验证很不错,但如果我没有javascript或无法使用它,服务器验证总比没有frickin-site好。
是的,真的很糟糕。
编辑:Colonel Sponsz指出another useful link about graceful degradation。
答案 4 :(得分:1)
只需在页面中放置一个脚本,通过重定向或使用Ajax将数据提交到启用该变量的页面,在访问您站点的浏览器中启用会话变量。在下一次单击y中,会话没有会话变量,您将其重定向到另一个页面,其中一个页面请求启用JavaScript的浏览器。
答案 5 :(得分:1)
某些高级用户默认禁用JavaScript,并在每个网站的基础上启用它。我只是警告他们JavaScript需要更进一步。用于在没有JS或禁用JS的情况下将文本显示给浏览器:
<noscript>
<p style="color: Red;">Warning: JavaScript is required to display anything after you login. Please enable JavaScript or use a different browser</p>
</noscript>
答案 6 :(得分:0)
一个原因是我想要一个标签式界面 - 它允许以不同的方式完成相同的任务。 “每个标签”使用了很多相同的逻辑,所以我不想将其分解为单独的页面。
使用dojo,我可以通过让所有内容在同一页面上是单独的div来轻松实现这一点,然后dojo将每个div放在它自己的选项卡中。 如果没有JavaScript,您将立即看到所有标签(div)。
这样有一些小小的打嗝,我认为这是一个要求,它总是表现得很好看,没有JavaScript的人会错过,请记住,这绝不是一个关键任务网站!
此外,这意味着我可以强制执行输入验证,而无需用户重新加载页面。
真的那么糟糕吗?
答案 7 :(得分:0)
我能想到的最好的理由是阻止人们在没有基于Java脚本的浏览器的情况下访问和使用表单,以免隐藏在计数器之外。
例如,如果某人决定发送垃圾邮件,即使使用capcha并通过不启用javascript隐藏其isp(很多计数器都依赖它),那么我认为禁止网站上的所有非JavaScript浏览器是个好主意
事实上,我想我会。
好主意'occhiso'。