Dmitry Zhukov > 27-07-2007 11:18:33 |
Добрый день! Возможно, эта тема много раз обсуждалась, но в форуму не смог ничего найти. Задача такая: Имеется 2 div на странице. оба имеют position:absolute, left:0px, right:0px один div содержит форму, и видим при начале загрузки, а второй не видим. Когда пользователь заполнил данные AJAX-om данные отправляются на сервер, приходит результат расчета, и результаты помещаются во второй div, он становится видимым, а первый скрывается. Форма достаточно длинная, поэтому приходится использовать scroll. А вопрос в том, что нужно вернуться на верх страницы в момент скрытия первого div и показа второго. Ничего лучше, чем сделать пустой якорь я не придумал. Но когда выполняю код document.getElementById('tops').click(); для элемента <a href='#' id='tops' name='tops'></a> то в Explorer-e все нормально, страница прокручивается и все помещается на свои места. А в firefox - нет. вылетает ошибка, что не существует метода click() Как поправить? Может сможете предложить более изящный способ навигаци по странице (т.е. программным методом прокручивать содержимое страницы до заданной точки) Заранее всем спасибо! |
Snitter > 27-07-2007 11:47:59 |
Dmitry Zhukov Ну а если тупо назначить второму div id="top" и оформить ссылку как <a href="#top"></a>. Не пойдёт? |
Dmitry Zhukov > 27-07-2007 11:52:21 |
Вопрос в том, что не срабатывает вызов события click(); Firefox говорит, что не знает такого метода для элемента <a></a> хотя, может, я не до конца понял, что именно Вы имели в виду. |
Snitter > 27-07-2007 12:07:56 |
А здесь не нужен click(), и вообще Javascript не нужен. Фишка в чём - если элементу на странице назначен какой-то id, то при клике на ссылку, содержащую #этот_id, браузер прокрутит страницу до этого элемента. Для примера нажми сюда - перейдёшь к верху страницы. |
Dmitry Zhukov > 27-07-2007 12:21:47 |
Snitter пишетА здесь не нужен click(), и вообще Javascript не нужен. Фишка в чём - если элементу на странице назначен какой-то id, то при клике на ссылку, содержащую #этот_id, браузер прокрутит страницу до этого элемента. Для примера нажми сюда - перейдёшь к верху страницы.
Вы меня не поняли. Пользователь заполняет форму, прокручивает страницу, например, до самого низа. Форма пошла на сервер без перезгрузки основоной страницы, данные подгрузились и показались в div, который position:absolute, top:0px, left:0px теперь нужно ПРОГРАММНО перекрутить страницу в самый верх. и вопрос как это сделать ПРОГРАММНО??? понятно, что кликнув по якорю, пользователь пойдет куда надо, но нужно, чтобы ПРОГРАММА кликнула. Описанный мной метод даже в OPERA работает, может глюк какой в 2.0.0.4 Firefox.... Если надо, могу код страницы дать... |
Lynn > 27-07-2007 12:30:39 |
|
Dmitry Zhukov > 27-07-2007 12:38:19 |
Спасибо, то что надо. Можете подсказать, где почитать про программный вызов событий? |
Infocatcher > 27-07-2007 12:41:59 |
Еще, я думаю, можно сделать кнопку с onclick="document.getElementById('id').focus();" (не проверял...) Или сделать ссылку javascript: window.document.getElementById('search-input').focus(); Последняя ссылка должна кидать к поиску вверху этой страницы. Или еще (тоже ссылка): javascript: scroll(0, 0); |
Sergeys > 28-07-2007 01:26:54 |
=> Разработка |
Unghost > 28-07-2007 21:04:25 |
Dmitry Zhukov http://developer.mozilla.org/en/docs/DOM:window.scrollTo |