阻止或检测 iframe 上的下载
P粉819533564
2023-08-31 21:35:46
<p>我遇到了一个对我来说很常见的问题,但我找不到正确的解决方案。</p>
<p>我有一个通过 iframe 显示的文档。顶部有一个工具栏,最终用户可以在其中下载文档。现在我想记录有关下载的信息(因此我可能需要一些事件)或禁用下载选项。</p>
<p>我知道我可以通过添加 #toolbar=0 来禁用整个工具栏,但最终用户可以自己更改它,并且仍然下载文档而不记录它,所以这对我来说不是一个合适的解决方案。</p >
如果您对
iframe
不感兴趣,则可以使用embed
或object
标记来防止此类工具栏出现出现。对于 iframe,如果您想禁用下载功能,您可能最终会得到特定于浏览器的内容,因为不同的浏览器会将 iframe 转换为不同的元素以实际呈现 PDF。如果您确切知道正在处理的浏览器,您可以尝试从下载按钮解除监听器的绑定,这是我在 Chrome 中测试过的解决方案,该解决方案似乎有效:
感谢 Ben D 对这个有关侦听器删除的问题的回答,如果你想沿着日志记录路线走下去,你可以用 addEventListener 替换cloneNode和replaceChild步骤。我认为这仍然会导致足够精明/坚定的用户能够下载 PDF 的问题(查看这篇文章的附加信息:https://www.w3docs.com/snippets/html/how-to-embed-pdf-in-html.html),因此根据您的最终目标,我建议为访客用户呈现 PDF 的静态图像预览,而完整查看器可能仅限于登录用户。