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