Javascript 重播iframe中每个元素的滚动事件

Javascript 重播iframe中每个元素的滚动事件,javascript,html,iframe,scroll,Javascript,Html,Iframe,Scroll,我有一个图书馆。库提供了一个React组件,其核心有两个输入:触发器(通常是按钮)和内容。单击触发器时,库将复制内容的整个DOM表示形式,并将其放入iframe中。它还将复制页面上的所有样式链接,以确保内容在iframe中的样式正确 不久前,有人提出(线程的末尾解释了核心问题)关于库无法打印水平滚动的内容(在本例中是在表中)的问题。事实证明,实际发生的是,内容中的一个组件正在虚拟化其呈现,这意味着只有在屏幕上可见的内容才真正被呈现。因此问题在于,react to print在将子元素复制到ifr

我有一个图书馆。库提供了一个React组件,其核心有两个输入:触发器(通常是按钮)和内容。单击触发器时,库将复制内容的整个DOM表示形式,并将其放入iframe中。它还将复制页面上的所有样式链接,以确保内容在iframe中的样式正确

不久前,有人提出(线程的末尾解释了核心问题)关于库无法打印水平滚动的内容(在本例中是在表中)的问题。事实证明,实际发生的是,内容中的一个组件正在虚拟化其呈现,这意味着只有在屏幕上可见的内容才真正被呈现。因此问题在于,
react to print
在将子元素复制到iframe时没有保持子元素的滚动位置

我知道如何,但不知道如何维护作为窗口子级的单独滚动的DOM元素的滚动。有办法吗

虽然理想的解决方案当然是打开一个设置或某件事情并完成,但我猜,如果有可能,它将看起来像:

  • 迭代页面上的每个元素
  • 如果元素具有滚动,请将其滚动位置保存在地图中
  • 将元素复制到iframe中(与当前一样)
  • 迭代iframe中的每个元素,如果在映射中找到对应的元素,则应用滚动

  • 您的解决方案看起来是正确的,因此我认为这是您处理此问题的最佳方式。@pako实现我建议的最佳方式是什么?我已发布了一个答案,但管理员已将其删除。因此,这里有我的基本实现:@samuel liew为什么删除他的答案,对我来说似乎很好(我可以看到它是Pako,因为我的代表级别)它对你有用吗?足以解决
    react to print
    中的问题?您的解决方案看起来很合适,因此我认为这是您处理此问题的最佳方式。@pako实现我建议的最佳方式是什么?我已发布了一个答案,但管理员已将其删除。因此,这里有我的基本实现:@samuel liew为什么删除他的答案,对我来说似乎很好(我可以看到它是Pako,因为我的代表级别)它对你有用吗?是否足以解决
    打印时的问题?