【问题标题】:Prevent right click on embeded PDF防止右键单击嵌入的 PDF
【发布时间】:2021-11-06 03:12:45
【问题描述】:

我在使用标签的客户网站上有 pdf,客户要求我阻止用户右键单击文档以阻止他们保存文件(是的,我知道这很愚蠢,但他们坚持认为这是他们想要)。

我已经研究了许多实现此目的的方法,但似乎都没有奏效(一些工作阻止滚动)。

我也想禁用 CRTL+S。

【问题讨论】:

    标签: javascript html css pdf embed


    【解决方案1】:

    虽然,正如你所说的那样,这种方法很愚蠢,而且有很多方法可以绕过它,但对于大多数用户来说,你可以捕获contextmenu 事件并使用event.preventDefault() 来阻止上下文菜单出现(或提供一个自定义一)。所有主要的桌面浏览器都支持它,所以应该在不妨碍滚动或其他任何事情的情况下做你需要它做的事情。

    对于Ctrl+S,我以前没有尝试过,但过滤keydown 事件可能是一种选择(尽管我对此表示怀疑)。除此之外,我不知道有任何其他方法可以做到这一点。

    【讨论】:

    • 我尝试了以下方法,但似乎不起作用。 <body> <embed src="https://www.w3.org/WAI/ER/tests/xhtml/testfiles/resources/pdf/dummy.pdf#toolbar=0" id="noContextMenu" width="400px" height="600px" /> </body> <script> const noContext = document.getElementById('noContextMenu'); noContext.addEventListener('contextmenu', e => { e.preventDefault(); }); </script>
    • 哦,好的。似乎这对于嵌入是不可能的,并且只有从同一域提供的 iframe 才可能。我不确定您的要求是什么,但由于浏览器安全性,这些似乎是限制。
    • 谢谢,我想可能是这样。感谢您的帮助。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-04-15
    • 1970-01-01
    • 2021-09-10
    • 2021-08-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多