2

我知道每个人都讨厌他们的上下文菜单被弄乱,所以我要求的是相反的。我尝试寻找处理更改网页上下文菜单的 javascript 插件,但我发现它们非常具有侵入性。(即上下文菜单现在只包含开发人员选择的项目)。有没有办法简单地将一个项目添加到上下文菜单中,同时保持用户的正常项目,同时保持菜单的原生样式?我发现的相同插件要求开发人员为菜单定义新样式。我看不出重新发明轮子的意义。

我问是因为我的一个客户想在用户右键单击时向网站添加额外的功能。

4

1 回答 1

1
  • 无法通过普通的 javascript + DOM 修改上下文菜单。它(通常)可以被一些看起来和行为类似于上下文菜单的动态 HTML 抑制和替换。这就是样式看起来不同的原因,以及为什么您不能将内置和自定义上下文菜单组合在一起的原因......在 javascript 中完成的“上下文菜单”根本不是真正的上下文菜单。

  • 如果事件被取消,上下文菜单可能会被禁用,但这取决于浏览器——大多数浏览器都提供了一个选项来禁止隐藏上下文菜单;如果启用了该功能,那么即使事件被取消,菜单也会显示。这会导致显示两个“上下文菜单”,一个是真实的上下文菜单,另一个是伪造的 javascript。

  • 要根据用户的系统外观设置网页样式,请使用 CSS2 ( http://www.iangraham.org/books/xhtml1/appd/update-23feb2000.html ) 中定义的系统颜色和/或 CSS3 外观属性 ( http ://www.w3.org/TR/2004/CR-css3-ui-20040511/#system

编辑:作为回应"a client of mine wants to add extra functionality to the site when the user right clicks"——您可能想建议客户,他们应该只在网站是一个 Web 应用程序(例如像谷歌文档)的情况下这样做,用户会合理地期望上下文菜单做一些不寻常的事情。您还应该确保有一种非隐藏的方式来做所有可以通过上下文菜单完成的事情。

于 2010-07-11T19:00:18.123 回答