【问题标题】:Microsoft Edge PDF Page Index Cache iframe IssueMicrosoft Edge PDF 页面索引缓存 iframe 问题
【发布时间】: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


【解决方案1】:

即使在最后位置恢复处于活动状态,也应该可以将 iFrame 重定向到页面。

我发现如果您手动执行此操作,则需要敲击两次才能将其接受为覆盖,例如,如果我读到第 2 页,共 3 页,那么在召回为第 3 页时,它将尝试转到第 2 页,但如果我请求第 3 页两次它会尊重这一点。

所以 URL 调用需要是

protocol://folder/filename.pdf#page=[number]
protocol://folder/filename.pdf#page=[number]

【讨论】:

    猜你喜欢
    • 2015-09-04
    • 2011-05-16
    • 2018-11-08
    • 1970-01-01
    • 2020-03-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多