2010-06-07 3 views
2

Это происходит только с Google Chrome и Safari. Это страница вопрос: http://jqeedu.tuxfamily.org/pmr/Почему эта страница автоматически прокручивается вниз?

После открытия посадки, нажмите на post your apartment, форма загружается через AJAX, и страница будет автоматически прокручиваться на дно, и если вы выполните прокрутку вверх, он снова возвращается на дно!

Что вызывает это?

Редактировать:
Извините, но я подождал несколько часов, а затем, поскольку он должен был быть исправлен, начал экспериментировать с ним и изменил некоторые вещи и в конечном итоге устранил проблему. То, что я узнал во время процесса заключается в следующем:

  1. У меня был нулевой ширины и высоты iframe на странице, которая служила target для загрузки формы, так чтобы мы могли загрузить фотографии без обновления страницы. Этот iframe был последним элементом в body. Когда я изменил свое место на вершину, прокрутка изменилась, не настаивая на нижнем положении, чтобы настаивать на верхнем положении страницы. Теперь страница не позволит вам прокручивать страницу вниз!
  2. Это была хорошая новость, потому что теперь я знал, что это было, это было вызвано iframe. Атрибут srciframe был установлен в #; Я подозревал это и изменил его, чтобы указать на настоящий файл (пустой фрейм 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> 

Наконец, я не хотел, чтобы отметить свой ответ, как принято отвечать, поэтому я Положите это в суть вопроса, я жду, когда кто-нибудь объяснит немного больше о природе этой проблемы или предоставит лучший анализ s. Если такой ответ будет предоставлен, я буду отмечать его как принятый ответ.

+0

Я только что попробовал, и все работает отлично. Использование Chrome (Dev Channel) – Kinlan

+0

Спасибо Kinlan, вы пошли на страницу после исправления проблемы. Прочтите мое объяснение выше. –

ответ

3

Хорошо работает в Safari 5, а также. Возможно, элемент в нижней части формы получает фокус, что приведет к прокрутке страницы.

+0

Тим, спасибо за попытку страницы, и я сожалею о разочаровании, см. Мое редактирование выше, я нашел ответ и исправлен, прежде чем вы увидите страницу. –

+0

Спасибо!Это была проблема, с которой я столкнулся. У меня была общая функция, чтобы сфокусироваться на первом вводе страницы, и на конкретной странице единственным входом был submit в нижней части страницы. –

Смежные вопросы