2010-06-07 90 views
2

这只会在Google Chrome和Safari中发生。这是有问题的页面: http://jqeedu.tuxfamily.org/pmr/为什么此页面自动向下滚动到底部?

打开登陆后,点击post your apartment,一种形式是通过AJAX加载,并且该页面会自动滚动至底部,如果您滚动起来,再次回到底部!

这是什么造成的?

编辑:
对不起,但我等了几个小时,然后因为它必须修复,开始试验它,并改变了几件事情,最终解决了问题。我的过程中认识到这:

  1. 我有这担当了target上传的形式,这样我们就可以上传照片,而无需刷新页面在页面上的零宽度和高度iframeiframebody中的最后一个元素。当我将它的位置更改为顶部时,滚动从坚持底部位置变为坚持页面顶部位置。现在该页面不允许您向下滚动页面!
  2. 这是个好消息,因为现在我知道它是什么,它是由iframe造成的。 iframesrc属性设置为#;我怀疑这一点,并将其改为指向一个真实的文件(一个空白的html框架),使文件和问题消失!

所以,我的分析是这样的:浏览器卡上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> 

好:

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

blank.html:

<html> 
<head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> 
</head> 
<body> </body> 
</html> 

最后,我不喜欢以纪念我自己的答案是公认的答案,所以我把这个问题放在问题的正文中,我等待某人更多地解释这个问题的本质,或者提供更好的分析秒。如果提供了这样的答案,我会将其标记为接受的答案。

+0

我刚刚尝试过它,它工作正常。使用Chrome(开发频道) – Kinlan 2010-06-08 08:04:38

+0

感谢Kinlan,在问题修复后您进入了页面。上面阅读我的解释。 – 2010-06-08 19:03:09

回答

3

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

+0

蒂姆,谢谢你尝试的页面,我很抱歉的失望,请参阅我上面的编辑,我找到了答案,并在你看到页面之前修复。 – 2010-06-08 19:02:15

+0

谢谢!那正是我在这里遇到的问题。我有一个通用函数,专注于页面的第一个输入,并且在特定页面上,唯一的输入是页面底部的提交。 – 2013-08-15 20:31:48