var old_element = document.getElementById("viewer").shadowRoot.getElementById("toolbar").shadowRoot.getElementById("downloads").shadowRoot.getElementById("download"); var new_element = old_element.cloneNode(true); old_element.parentNode.replaceChild(new_element, old_element);
如果您对
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 的静态图像预览,而完整查看器可能仅限于登录用户。