Вход

Просмотр полной версии : Не срабатывает .click() в хроме


rootv
14.10.2011, 14:49
Не срабатывает getElementById().click() в хроме и FF.
Подскажите, кто сталкивался...

dmitriymar
14.10.2011, 15:05
document.getElement.....

rootv
14.10.2011, 15:09
В полной форме -
document.getElementById('perehod').click();

... не работает (в IE и опере - нормально)

Kolyaj
14.10.2011, 15:14
Это нестандартный IE-шный метод, в Опере работает, т.к. Опера пытается сидеть на двух стульях и повторяет всё за всеми браузерами.

rootv
14.10.2011, 15:17
так что за метод стандартный?

Kolyaj
14.10.2011, 15:58
Вызвать нужное действие, а не пытаться сделать вид, что пользователь кликает по чему-нибудь.

rootv
14.10.2011, 16:36
Вызвать нужное действие, а не пытаться сделать вид, что пользователь кликает по чему-нибудь.
Т.е. пусть сам кликает по ссылке?
Не подходит.
Клиент кликает по кнопке отправки данных, а переход должен быть только в случае, если после обработки получен положительный ответ...
Почему же все-таки click(); не работает?
(стыдно рассказать не программистам, что переходом со страницы на страницу при выполнении определенного условия приходится заниматься сутки, да еще и не сделать!)

dmitriymar
14.10.2011, 17:10
Клиент кликает по кнопке отправки данных, а переход должен быть только в случае, если после обработки получен положительный ответ...
а если поддержка скрипта отключена у пользователя? никогда не перейдёт?

Kolyaj
14.10.2011, 17:13
Т.е. пусть сам кликает по ссылке?
Где я такое написал?

Его клик какое-то действие вызывает, просто вызывайте это действие программно.

Greck
14.10.2011, 17:20
Клиент кликает по кнопке отправки данных, а переход должен быть только в случае, если после обработки получен положительный ответ...
Клиент кликает по ссылке, вызывается функция check - проверки чего либо, если она возвращает true, человек перейдет по ссылке, если false, то нет, код:
<a href="/somelink" onclick="if (!check()){ return false }">ClickMe</a>

Greck
14.10.2011, 17:24
Или где-либо в коде:
if (check()) {
window.location = 'http://test.ru/somelink';
}
И перейдет на соответствующую страницу.

rootv
14.10.2011, 18:08
Клиент кликает по ссылке, вызывается функция check - проверки чего либо, если она возвращает true, человек перейдет по ссылке, если false, то нет, код:
<a href="/somelink" onclick="if (!check()){ return false }">ClickMe</a>
а как сюда можно вставить ответ с сервера?!

rootv
14.10.2011, 18:10
с click прояснилось, в ссылку его не вставить...
метод click есть только у button, checkbox, radio, reset и submit

rootv
14.10.2011, 18:16
Вызвать нужное действие, а не пытаться сделать вид, что пользователь кликает по чему-нибудь.
Понял...
Вызвать нужное действие - это перейти на другую страницу
Необходимость перехода на другую страницу зависит от ответа сервера...
Поэтому команду должен давать обработчик
Обработчик грузится в невидимый фрейм основной страницы.

если поместить window.location в обработчик, то меняется содержание скрытого фрейма... (открывать из обработчика новое окно с нужным location? Так браузеры блокируют всплавающее окно...)

пока ничего больше не придумывается...

Greck
15.10.2011, 16:53
Из ifame:
window.parent.document.location='test.ru';

Greck
15.10.2011, 16:59
а как сюда можно вставить ответ с сервера?!
Можно в check() вставить ajax, но страница заморозится. А вообще к чему восклицательный знак? Вы не писали, что у вас загрузка с сервера и тем более iframe, я должен был догадаться?

rootv
17.10.2011, 00:40
Спасибо за помощь!
(буду обращаться :) )
Из ifame:
window.parent.document.location='test.ru';
Работает как часы во всех браузерах...
Подводя черту:
метод click есть только у button, checkbox, radio, reset и submit, а для ссылок работает, но не во всех браузерах...
location "рулит", но, видимо, для уже существующих окон,
новое же окно натыкается на настройки браузеров против всплывающих окон (хотя в моем случае это уже не надо, загружаюсь в старое окно)