为什么此页面会自动向下滚动到底部?

时间:2010-06-07 21:41:06

标签: safari google-chrome

这仅适用于Google Chrome和Safari。这是有问题的页面: http://jqeedu.tuxfamily.org/pmr/

打开着陆后,点击post your apartment,通过ajax加载表单,页面自动滚动到底部,如果向上滚动,它会再次返回到底部!

造成这种情况的原因是什么?

编辑:
对此感到抱歉,但我等了几个小时,然后因为它必须修复开始尝试它并改变了一些事情并最终修复了问题。我在这个过程中学到的是:

  1. 我在页面上有一个零宽度和高度iframe,用作上传表单的target,这样我们就可以上传没有页面刷新的照片。这个iframebody中的最后一个元素。当我将其位置更改为顶部时,滚动从坚持底部位置变为坚持页面顶部位置。现在该页面不允许您向下滚动页面!
  2. 这是个好消息,因为现在我知道它是什么,它是由iframe造成的。 src的{​​{1}}属性设置为iframe;我怀疑这个,并改为指向一个真实的文件(一个空白的html框架),使文件和问题消失了!
  3. 所以,我的分析是:浏览器卡在#文件中loading,负责iframe内容的流程仍在运行。这个过程以某种方式不允许我们滚动到loading将离开iframe的区域。这是viewport引擎的错误行为,使用webkit构建的浏览器演示了此问题。

    最后,下面的代码段显示了更改前后webkit的代码以及新目标文件的内容。

    越野车:

    iframe

    好:

    <iframe id="control_target" name="control_target" src="#"
     style="width:0;height:0;border:0px solid #fff;"></iframe>
    

    blank.html:

    <iframe id="control_target" name="control_target" src="blank.html" 
    style="width:0;height:0;border:0px solid #fff;"></iframe>
    

    最后,我不喜欢将自己的答案标记为已接受的答案,所以我把它放在问题的正文中,我等待有人解释一下这个问题的性质或提供更好的分析。如果提供了这样的答案,我会将其标记为已接受的答案。

1 个答案:

答案 0 :(得分:3)

在Safari 5中也可以正常工作。也许表单底部的元素正在接收焦点,这会导致页面滚动。