|
bug:iframe多层嵌套的时候,切换时嵌套得子层会自动触发一个滚动到顶部的事件
这问题我这里表现为:iframe里嵌套得dialog,dialog得ui-content是iframe,然后点击子表,继续在iframe里打开一个dialog,我这里有二层子表,加上原本的iframe,有4层iframe。切换tab时,切换回来,打开得子表位置错位了 图片:1.png ![]() 正常应该是: 图片:1.1.png ![]() dom结构图: 图片:2.png ![]() 图片:3.png ![]() 解决思路:参考https://bbs.csdn.net/topics/392438851 多个iframe切换时,如何保持每个iframe的滚动位置 二个步骤: 1、获取值:进入iframe的时候保存当前的scrolltop,可以新设一个属性_scrolltop保存该滚动值。如果多层嵌套找寻到iframe进行设置即可, 我此处的代码片段: secondIframe =firstDialog.querySelector("iframe")
secondIframeId =secondIframe.getAttribute("data-key")
secondScrollTop =secondIframe.contentDocument.documentElement.scrollTop
//把iframe滚动得高度存到iframe得属性_scrollTop
secondIframe.setAttribute('_scrollTop',secondIframe.contentDocument && secondIframe.contentDocument.documentElement && secondScrollTop)2、赋值:切换的时候把iframe的新属性_scrolltop(这个是之前滚动过的值)赋值给当前iframe的scrolltop(进入iframe触发事件,清0了)。 代码片段: if (secondIframe.getAttribute('_scrollTop')) {
secondIframe.contentDocument.documentElement.scrollTop = secondIframe.getAttribute('_scrollTop')
} |
|
|
|
沙发#
发布于:2018-12-17 17:22
@sunshine:
|
|
|
