23

我们正在编写一个 Web 应用程序(不仅仅是一个网站,而是一个真正的应用程序),并针对下一个版本进行以下讨论:

  • 我们的 UI 设计师想要替换浏览器的右键单击上下文菜单(在适当的地方显示我们自己的菜单,或者根本不显示菜单),因为他希望 Web 应用程序更像我们的(现有)Windows 应用程序
  • 我们的开发人员(和我)强烈反对,因为这是不好的做法,而且只是您在 Web 应用程序中不做的事情

因此,我正在寻找“更可靠”的论点——比如最佳实践指南、来自信誉良好的来源的任何陈述、编码论点等——以了解这个问题的利弊,我希望可以用它来一劳永逸地解决它...

4

8 回答 8

36

无论如何,你不能可靠地做到这一点。在 Firefox 中,转到“设置”、“内容”、“JavaScript/高级”(我猜是字幕,没有英文 Firefox (;) 来覆盖上下文菜单行为,然后砰,您的应用程序不再工作了。我的网上银行应用程序在他们的旧版本,所以我不能用鼠标复制和粘贴。我讨厌它,所以我在 Firefox 中启用了保护,它起作用了。有点。他们的新版本不再做这种坏事了。

相反,在需要上下文菜单的地方使用一个小的下拉箭头,可以单击或将鼠标悬停在上面以显示菜单。JetBrains 的TeamCity Web 应用程序在这方面做得很好。

于 2009-03-17T14:59:55.423 回答
8

如果你的应用要在内网运行,也许UI设计器的参数是有效的:只要应用的所有用户都是众所周知的,并且你想模拟一些Windows应用,我认为限制右键单击是可以的或任何其他输入,因为这只是此应用程序的要求,就像对任何其他应用程序一样。

但是如果你的应用程序要在互联网上运行,禁用或替换右键单击是一个非常糟糕的主意,这些只是我提醒的一些论点:

  • 首先,改变用户界面的行为是激进和烦人的——没有人愿意为了访问您的网站而习惯“新控件”,而且通常人们讨厌离开他们的舒适区域。我的意思是,我知道我的右键单击做什么,我希望它总是做同样的事情。

  • 人们可以理解 Windows 应用程序和 Web 应用程序之间的区别,因此无需“模仿 Windows 应用程序行为”。

  • 不是每个人都使用 Windows :-)

  • 此外,这是无效的,因为有几种方法可以覆盖此行为,例如 Firefox 中的设置,甚至是禁用特定 javascript 指令的插件,例如this one

于 2009-03-17T15:05:24.647 回答
5

根据您的受众,您很有可能您的用户甚至不知道有一个右键菜单。所以请不要把它作为唯一的选择

于 2009-03-17T21:15:16.530 回答
1

我个人认为您应该不理会浏览器的默认行为……用户已经习惯了它们,因此无需让他们习惯于的做事方式。

但是,如果您正在构建内部网(而不是公共站点),那么我会尽可能地进行调整以提高可用性。

于 2009-03-17T14:58:31.073 回答
1

我会使用的一个论点(在引号中以产生戏剧性的效果):

与其他畅通无阻的 Web 界面相比,缺乏一致性和功能减少会导致用户失去信心——至少可以说这是不可取的。

当然,如果许多或大多数 Web 应用程序用户已经熟悉或经常使用 Windows 应用程序,那么 UI 设计师可能走在正确的轨道上,并且与 Windows 应用程序的一致性可能是赢家。

也就是说,在我看来,很难在网页中制作直观的自定义上下文菜单,虽然有些用户可能会喜欢它,但我猜大多数人可能永远不会使用它。

于 2009-03-17T21:13:01.840 回答
1

因为他希望 Web 应用程序更像我们的(现有)Windows 应用程序

我认为在 Windows 应用程序中单击鼠标右键是个坏主意。

在网络浏览器中,这是一场 UI 灾难,因为没有人会期待它。

于 2009-03-17T21:24:54.523 回答
0

我认为这取决于您是否将上下文菜单视为浏览器 chrome 的一部分。如果你这样做了(我认为这是这个观点),那么它应该是偏离目标的,但否则它是为你的应用程序添加一些可用性的好地方。

于 2009-03-17T15:00:51.007 回答
0

从 Web 应用程序替换 GUI 特定区域的浏览器右键单击上下文菜单可能非常有用。这样做只是为了禁用上下文菜单会惹恼您的用户,他们可能会试图找到解决方法。此外,从应用程序的整个区域中删除或替换浏览器右键单击上下文菜单通常会很烦人,并且会使调试变得更加困难。

不幸的是,我不能提供任何更可靠的论据,而且我并没有完全支持任何一方,但我想我会分享我作为 Web 应用程序开发人员和 Web 用户的经验。

于 2009-03-17T15:02:42.343 回答