1

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

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

我见过其他网站这样做,但我不知道如何执行它。
例如,尝试在此处使用 username=user 和 password=user
http://demo.actitime.com/login.do?username=user登录

然后我希望在每一页上都发生同样的事情。

任何帮助表示赞赏。

奥奇索

4

8 回答 8

21

我不认为这是一个明智的做法。

只需在网站上多花点力气,这样没有 javascript 的用户也可以访问该网站。不要忘记他们是您的客户。他们可能有充分的理由禁用 javascript。

于 2009-01-26T09:35:44.030 回答
5

你知道,这一年是 2009 年,而不是 1997 年。这些黑客属于过去,死了,被埋葬了,就像他们曾经的污秽一样。

至于一个有用的答案:阅读优雅 退化

至于您的回答:CSS 可以完成您使用 DOJO 所做的事情,而无需 Javascript(至少,您提到的事情)。如果未启用 javascript,它将需要往返服务器,仅此而已。我不知道您所说的“逻辑”是什么意思,但是使用 PHP 和可能的模板系统比使用 javascript 更好地完成该术语的规范意义。

没有往返的输入验证很好,但如果我没有 javascript 或不能使用它,服务器验证比 no-frickin-site 更好。

是的,它真的那么糟糕。

编辑:Sponsz 上校指出了另一个关于优雅降级的有用链接

于 2009-01-26T09:59:09.817 回答
4

对此唯一适当的回应是:“你为什么要这样做?”

确实,更好的方法是先尝试使其工作,然后再添加花哨的 javascript 位。这样,禁用了 javascript 的用户仍然可以使用它,即使它的功能有限。

于 2009-01-26T09:40:40.963 回答
4

有两件事浮现在脑海:

  • 使用<noscript>标签作为内容;和
  • 对于该网站和类似的功能,不是有一个提交按钮,而是有一个带有 onclick 处理程序的普通按钮:

    <input type="button" onclick="documents.forms[0].submit();" 值="提交">

未启用 Javascript 无法提交。

于 2009-01-26T09:34:42.037 回答
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>
于 2009-02-04T01:40:59.547 回答
1

只需在您的页面中放置一个脚本,通过使用 Ajax 将数据重定向或提交到启用该变量的页面,在访问您的站点的浏览器中启用会话变量。在下一次单击 y 中,会话没有会话变量,您将其重定向到另一个页面,该页面请求启用 JavaScript 的浏览器。

于 2009-01-26T10:37:56.870 回答
0

The best reason I can think of is to stop people accessing and using forms without java scripted based browsers so hiding from the Counters.

For example if someone decides to spam, even with capcha and hides their isp by not enabling javascript, (alot of counters rely on it), then I think it would be a good idea to ban all non javascript browsers on a website.

In fact I think I will.

Good idea 'occhiso'.

于 2009-07-18T20:30:10.977 回答
0

一个原因是我想要一个选项卡式界面——它允许以不同的方式完成相同的任务。“每个选项卡”使用了很多相同的逻辑,所以我不想将它分成单独的页面。

使用 dojo,我可以很容易地实现这一点,方法是将所有内容都放在同一页面上的单独 div 中,然后 dojo 将每个 div 放在它自己的选项卡中。如果没有 JavaScript,您将一次看到所有选项卡(div)。

有一些像这样的小问题,我认为把它作为一个要求,它总是表现得很好,而且那些没有 JavaScript 的人会错过,记住这绝不是一个关键任务站点!

此外,这意味着我可以强制执行输入验证,而无需用户重新加载页面。

真的有那么糟糕吗?

于 2009-01-26T09:54:32.900 回答