页面底部的iframe:避免自动滚动页面

sme*_*pie 18 javascript iframe scroll

iframe在页面上从中到下.当我加载页面时,它会滚动到底部.我尝试过,body onload window.scroll(0,0)但它会产生一种难看的效果,因为它首先会下降然后立即向上滚动.

iframe在页面上自动滚动到底部的原因是什么?

Nat*_*ugh 32

这只是一个随机的,但可能做这样的事情:

<iframe style="display: none;" onload="this.style.display='block';" src="..."></iframe>
Run Code Online (Sandbox Code Playgroud)

我们的想法是,如果它是一个无法控制的远程页面上的脚本窃取脚本,浏览器将不会聚焦隐藏的元素.并且很有可能在重置更改脚本后,您的onload将会触发.

或者,另一个可能更可靠的选项:

<iframe style="position: absolute; top: -9999em; visibility: hidden;" onload="this.style.position='static'; this.style.visibility='visible';" src="..."></iframe>
Run Code Online (Sandbox Code Playgroud)

这里我们基本上是说隐藏框架并将其垂直移动到页面上的负偏移.当它确实尝试将元素聚焦在框架内部时,它应该向上滚动页面,然后一旦加载就将iframe放回到它的预期位置.

当然,在不知道更多的情况下,很难确定哪些权衡是可以的,而且这两种选择都有条件有点生动,所以YMMV.

我希望有帮助:)

  • 谢谢!似乎在 2019 年的 Chrome 73 中仍然具有相关性 (2认同)