【发布时间】:2022-10-07 20:06:22
【问题描述】:
背景: 当用户在浏览器中阅读 PDF 时,Microsoft Edge 具有“从上次中断的地方继续”功能。这在用户直接打开 PDF 的选项卡时效果很好 - 如果用户滚动到第 15 页,关闭选项卡,然后稍后再次打开,Edge 会自动将用户带回第 15 页。如果用户在不同的选项卡中打开不同的 PDF,这也有效 - Edge 会记住该特定 PDF 的索引。
问题在于,当通过 Javascript 在单个网页上的 iframe 中打开这些不同的 PDF 时。打开一个 PDF,滚动到第 15 页,关闭该 iframe(JS 从 DOM 中删除该 iframe),然后在 iframe 中打开另一个 PDF 也会将另一个 PDF 打开到第 15 页,这是不应该的。我们希望为每个唯一的 PDF 维护一个单独的缓存索引。
似乎 Edge 将 PDF 索引存储在用户浏览器窗口中的 URL 上,而不是 iframe 中出现的 URL。
我了解可以在浏览器中关闭此设置,但我正在寻找开发人员解决方案来防止网站上的用户发生这种情况。
【问题讨论】:
-
我不确定这一点,但正如我所期望的那样,该功能将由 Edge 中的 PDF 渲染器(或用于渲染 PDF 的任何浏览器扩展)处理,因此不太可能有外部 JS 可以访问的方法可以影响它。
-
我强烈建议在单独的页面中打开每个 PDF,而不是在
<iframe>中打开。如果您急需在<iframe>进行PDF渲染,可以通过Alt+Shift+I向Edge PDF Team反馈,或者在roadmap discussion回复。但是页面中的每个<iframe>都需要增加内存和其他计算资源。所以请尽量避免使用<iframe>来渲染PDF。
标签: javascript pdf microsoft-edge browser-cache