【发布时间】:2017-11-11 07:49:05
【问题描述】:
我有一个父页面,其中包含页面中间的 iFrame(同一个域,可以访问两者)。我的 iFrame 标签如下所示:
<iframe name="Survey" onload="parent.location='https://www.example.com/ParentPage#SurveyTop';" scrolling="no" src="https://www.example.com/ChildPage" width="100%" id="iFrameResizer0">
iFrame 可以变得非常高,所以我在 iFrame 标记中添加了 onload 命令,它使页面在每次刷新/加载 iFrame 时自动回到 iFrame 的顶部。
问题在于,第一次加载父页面时它也会立即向下滚动到 iFrame 的顶部,因为 iFrame 的内容在父页面之后一两秒加载。因此,访问者永远不会看到 iFrame 上方的所有重要页面名称/介绍/英雄图片。
是否有一些 javascript 可以让我最初将父页面显示在页面顶部,但是每当刷新 iFrame 中的内容时,它就会像现在一样滚动到 iFrame 的顶部?
我尝试在 iFrame 之后放置各种 javascript 方法,认为它会加载并滚动到 iFrame,但如果页面再向上滚动到顶部,但它从未起作用。例如:
document.body.scrollTop = document.documentElement.scrollTop = 0;
或
window.scrollTo(x-coord, y-coord);
我也尝试过延迟三秒,但它仍然没有滚动到顶部。 (我的脚本很糟糕)。让页面跳到 iFrame 然后回到顶部并不理想,但这只会在第一次发生,这是我愿意做出的妥协!谢谢!
【问题讨论】:
-
实际上,如果我在 Chrome 控制台中执行
document.body.scrollTop = document.documentElement.scrollTop = 0;,它确实会回到顶部。但我想我只需要添加两到三秒的延迟。有人可以让我知道如何在延迟后运行该脚本吗?谢谢!
标签: javascript html css iframe