当页面加载带有以#结尾的网址的iframe时,父页面会滚动,以便iframe的正文位于浏览器窗口的顶部。
演示:http://jsfiddle.net/dTQEE/1/
如果网址以#
结尾,例如http://foo.com#
,浏览器假定您要转到页面顶部。
当加载带有哈希片段的iframe时,如何防止父窗口滚动?
Chrome中出现问题,不确定这是否是其他浏览器的问题。
现在我的最佳解决方案是使用el.addEventListener('scroll', ...)
将scrollTop
重置为0,如果它还不是0.这样可行,但向下滚动和向上滚动都非常明显。
答案 0 :(得分:0)
不确定这是否可行,但您应该尝试使用window.onhashchange事件并防止默认。如果没有,你将不得不剥离散列,如果它没有任何后跟。
答案 1 :(得分:0)
我知道这是一个老问题,但我在搜索同样的问题时遇到了它。我想出了一个在Chrome中为我精彩的解决方案。
<a href="dummylink.html" onclick="someFunction(); return false;">
href
链接用于状态栏,但由于最后的return false;
,它实际上并不在任何地方。然后,您只需在document.formName.submit();
内进行重定向(在我的情况下,它是someFunction();
)。不过想想它,你可以做一切内联,但除非你只有一件事要做,否则这看起来并不是很好。
注意:如果您的someFunction();
最后有return false;
,则不足以阻止跳跃。