Javascript iframe中的location.hash滚动父窗口

Javascript iframe中的location.hash滚动父窗口,javascript,html,iframe,Javascript,Html,Iframe,我有一个带有iframe的页面。iframe内部是将location.hash设置为iframe窗口中元素id的代码(我无法更改) 这会产生不必要的效果,滚动最外层的浏览器窗口,使窗口顶部接触iframe的顶部。这很烦人,因为iframe上方有一个工具栏,它对我的应用程序至关重要 有没有办法防止location.hash的设置影响主窗口的滚动位置 你能帮我吗 编辑:按照我描述的方式,这似乎不太可能。您可以使用: event.preventDefault() 这将停止应用它的元素的默认操作 如果

我有一个带有iframe的页面。iframe内部是将location.hash设置为iframe窗口中元素id的代码(我无法更改)

这会产生不必要的效果,滚动最外层的浏览器窗口,使窗口顶部接触iframe的顶部。这很烦人,因为iframe上方有一个工具栏,它对我的应用程序至关重要

有没有办法防止location.hash的设置影响主窗口的滚动位置

你能帮我吗

编辑:按照我描述的方式,这似乎不太可能。

您可以使用:

event.preventDefault()
这将停止应用它的元素的默认操作


如果preventDefault不符合您的要求,您可以动态移动
的位置,使其始终位于屏幕顶部。这样,当调用移动到它将要调用的任何散列时,实际上什么都不会移动


但是,如果preventDefault()有效,它将是一个更好的解决方案。

谢谢-我会将此附加到哪个事件?我尝试过:window.onscroll=function(e){e.preventDefault();};在父窗口和iframe中都无效。如何调用iframe-如果可以,我会尝试在调用它的click事件上设置preventdefault。iframe中的某些内部代码(与click事件无关)调用location.hash=“#”+id。我无法阻止它运行该行,否则iframe中的代码将中断。干杯,杰米。我也试过这个。我在主html文件的顶部放置了一个锚点,并将其名称动态设置为iframe中使用的锚点,这也没有帮助:-(