我尝试过使用scrollTo(y,x)和scrollTop(x-pos),括号中的值是各个DOM元素的offset.top值。这些似乎最初在所有浏览器中都有效,但是当刷新Chrome以重新发送表单提交时,页面会跳转到应该存在的瞬间,然后跳回到顶部。当我在刷新页面之前滚动回页面顶部时会发生这种情况。 Chrome是否会保存某种会话变量或在刷新时跟踪页面位置,以便在单击刷新时,页面会聚焦于上次查看的屏幕部分?如果是这样,有没有办法阻止Chrome的这种反应?我已经尝试添加一个setTimeout,希望我的scrolltop或scrollto(如上所述,我尝试过两者)等到Chrome对页面加载做出反应,但结果没有变化。
if ($('.register_box').length > 0) {
if ($('.register_box').find('.error').length > 0) {
var regbox = $('.register_box').offset();
$('body').scrollTop(regbox.top);
}
}
我试过'body','html',一个选择器包装器,窗口,屏幕,以及它们的组合 - 没有变化。我也提醒了regbox.top的值,并且一直得到699的值,所以我知道它传递了正确的值。我是否需要停止传播或防止默认,如果是,在哪里? Firefox和IE都正确响应。 Mac和PC上的Chrome都没有。