如何隐藏浏览器的菜单?

时间:2009-09-11 05:38:35

标签: asp.net javascript

我正在开发一个用于在线测验测试的ASP.NET应用程序。这组问题将从一组问题中随机选择。应用程序工作正常,但我想在显示测验页面时隐藏浏览器菜单选项(以便用户无法保存或打印测试)。我不想打开一个新的弹出窗口。那么我该如何为活动窗口执行此操作。

该应用程序由大约5个网页组成,测试位于第3页和第4页。所以我希望菜单只能隐藏在第3页和第4页。这是可能的,我该怎么做? 提前致谢

4 个答案:

答案 0 :(得分:1)

这是不可能的。您只能在弹出窗口中隐藏菜单栏。

但是,无论哪种方式,用户始终可以右键单击并选择“打印”,或使用Ctrl + P等快捷方式。即使您可以隐藏菜单,也可以禁用JavaScript。如果他们真的想要打印/保存测验,你就不会阻止他们。我建议找另一个解决方法。

答案 1 :(得分:0)

我认为不可能做你要求的事。

请记住,除了使用浏览器菜单之外,还有其他打印方式:Ctrl+P通常会这样做,也可以通过右键单击菜单“保存页面”或使用{{1} - 当然,总是有打印屏幕; - )


您可能拥有的最佳“保护”是定义正确的许可证(这意味着您可能需要律师,以获得可靠的东西),明确禁止重新分发问题:这样,您的用户可以为他们重复使用这些问题 - 无论如何你无法阻止这些问题 - 但不能重新分发它们。

当然,如果您正在开发一些问题,那么这可能是值得的。

答案 2 :(得分:0)

页面呈现到屏幕后,最终控制权将转移给用户。他可以关闭javascript并完成必要的工作,或者他可以捕获页面等多种方式。

最好不要尝试这样做。

答案 3 :(得分:0)

只要数据在用户的计算机中,他就可以用这种或那种方式访问​​它,我不确定它是否值得麻烦。

如果您想拒绝打印,可以尝试使用一些特殊的CSS媒体类型(例如使用display:nonecolor:#fff定义某些样式。)

http://www.w3schools.com/CSS/css_mediatypes.asp

但即使这样,用户也可能只按PrntScr:)

您也可以通过在整个HTML正文上使用onKeyDown事件来拦截ctrl + P键击,并停止冒充,但它可能无法使用相同的跨浏览器。

您也可以通过处理onContextMenu事件(http://msdn.microsoft.com/en-us/library/ms536914%28VS.85%29.aspx)来拒绝右键单击页面

此外,问题应呈现为图片,或拒绝从页面中选择文字,以便用户无法在电子邮件中复制/粘贴问题(http://www.dhtmlcentral.com/forums//archive/index.php/t-18008.html毫微帮助)