代码之家  ›  专栏  ›  技术社区  ›  Ben Clayton

iframe中的location.hash滚动父窗口

  •  4
  • Ben Clayton  · 技术社区  · 16 年前

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

    这会产生不想要的效果,滚动我最外层的浏览器窗口,使窗口的顶部接触iframe的顶部。这是相当恼人的,因为我有一个工具栏上面的iframe是至关重要的我的应用程序。

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

    你能帮帮我吗?

    编辑:看起来这不可能像我描述的那样。

    2 回复  |  直到 14 年前
        1
  •  1
  •   Jamie Wong    16 年前

    如果preventDefault不执行您希望它执行的操作,您可以动态地移动 <a name='iframehash'> 所以它总是在屏幕的顶端。这样,当调用移动到将要调用的哈希值时,实际上什么也不会移动。

    但是如果preventDefault()起作用,它是一个更好的解决方案。

        2
  •  0
  •   matpol    16 年前

    您可以使用:

    event.preventDefault()
    

    这将停止应用它的元素的默认操作。

    https://developer.mozilla.org/en/DOM/event.preventDefault