如何使用 <object> 禁用 JSP 中显示的 PDF 中的功能键,从而(部分)阻止保存?

Posted

技术标签:

【中文标题】如何使用 <object> 禁用 JSP 中显示的 PDF 中的功能键,从而(部分)阻止保存?【英文标题】:How to disable function keys in a PDF displayed in a JSP using <object> and hence to (partially) prevent a Save? 【发布时间】:2013-01-29 11:13:07 【问题描述】:

我使用以下方法在 JSP 中显示 PDF:

<object id="pdfObj" data='myController.do?#toolbar=0&amp;navpanes=0&amp;scrollbar=1&amp' type='application/pdf' width='100%' height='460px' onkeypress="javascript:alert('key press event not triggered!');"></object>

当屏幕加载时,工具栏和导航窗格是隐藏的。浮动工具栏也不可见。但是,F8 或 F4 分别打开工具栏或导航窗格。 捕获 keypress 或 keydown 事件的尝试适用于屏幕的其余部分,但是一旦我在 PDF 中单击,按键事件就不会被捕获,这会导致工具栏被启用。

我了解阻止保存在浏览器中显示的 PDF 是不可能的,至少在不使用任何插件的情况下是不可能的。 但是,我在这里的问题更多是为了防止按下功能键只是为了添加用户需要通过的一层来保存文档。 [更新] 考虑到下面@robertc 的评论,在处理嵌入对象的应用程序处理之前,我们能否有一个脚本来捕获屏幕级别的功能键?

【问题讨论】:

您甚至无法确定将由哪个查看器显示 PDF,您如何希望禁用其中的内置功能? 嗨@robertc,是的,我们不能说哪个查看器将处于活动状态,但方法是阻止所有功能键以尽可能减少可能性。我知道这不是一个完整的万无一失的解决方案,而只是增加了另一层控制。 我的意思是:你只能阻止一个应用程序的功能键in那个应用程序 【参考方案1】:

我无法拦截/阻止/捕获由 PDF 客户端(Adobe 安装在我的系统中)处理的击键。 接受来自@robertc 的评论作为答案。由于他将其作为评论发布,因此我将其移至此处: "您只能在该应用程序中阻止该应用程序的功能键"

【讨论】:

以上是关于如何使用 <object> 禁用 JSP 中显示的 PDF 中的功能键,从而(部分)阻止保存?的主要内容,如果未能解决你的问题,请参考以下文章

js中如何禁用鼠标滚轮事件?急,在线等!

我如何使用蚂蚁设计在反应js的小屏幕上禁用1个选项卡

js中的object对象toString和valueOf的区别

如何查看javascript object对象的所拥有的属性值

如何禁用单个视图的客户端验证?

js 如何遍历对象的属性名,而且按照顺序输出