拒绝没有启用javascript的浏览器使用我的php网站

时间:2009-01-26 09:30:38

标签: php javascript dojo

我在PHP中编写了一个相当小的Web应用程序,并打算使用DOJO使其“花哨”,并且很可能在客户端处理一些验证(也会有服务器端验证)。

我想将JavaScript作为我网站的一项要求,因此,如果用户的浏览器禁用了JavaScript,或者无法使用JavaScript,则他们根本无法使用该网站,并收到消息通知他们这个要求。

我见过其他网站这样做,但我无法弄清楚如何执行它 例如,尝试使用username = user和password = user
登录 http://demo.actitime.com/login.do?username=user

我希望在每个页面上都能发生同样的事情。

任何帮助表示感谢。

occhiso

8 个答案:

答案 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'。