Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > JavaScript: Общие вопросы > Не получается программно нажать ссылку |
Автор: Seganapa 23.2.2013, 11:29 | ||||||
Вот фрагмент кода:
Там есть ссылка <a>Альфа</a> - Мне нужно программно на нее нажать. Вот так нахожу эту ссылку в коде:
Перепробовал onclick(), click(), submit(), ничего не срабатывает... Помогите, пожалуйста, разобраться... Походу что-то нужно делать с
|
Автор: Seganapa 23.2.2013, 15:30 | ||||||
Спасибо за информацию... Но до конца не допонимаю... С JavaScript сталкивался очень коссвенно, пишу в основном на C#... Покажите как это можно использовать в моем коде, пожалуйста... Если я делаю так:
Срабатывает, но не та ссылка которая мне нужна... Открывается
Как же мне кликнуть на
|
Автор: Arantir 23.2.2013, 15:52 |
Какого результата вы пытаетесь достичь? Между структурой формы и вашими словами связь весьма туманна. Судя из формы, эти две ссылки либо должны быть "выберите одно из двух", либо должны инициировать отправку формы. В первом случае их следует переделать в input с type="radio" или в select. Во втором случае можно создать несколько input с type="submit", но разным value; подобное допускается. И в обоих случаях на стороне сервера у вас будут данные о выбранном варианте. В ином случае потребность наличия этих ссылок в форме сомнительна. Если по каким-либо причинам вам требуется отправить форму на одну из двух разных ссылок, в зависимости от нажатой пользователем ссылки, то вам нужно изменить атрибут action формы на нужный адрес и после этого вызывать submit формы. Это тоже можно сделать несколькими путями. Если варианты выбора представлены через select или input[type='radio'], то вы можете добавить событие submit на форму и изменить action на тот, что будет в value у input/select. Другой вариант - оставить ссылки (с заданным им href) и по событию click изменять action формы на href нажатой ссылки, после чего вызывать submit формы. |
Автор: Seganapa 23.2.2013, 15:59 |
Arantir, Мы видимо о разных вещах разговариваем... Я пишу небольшой бот для авторизации на сайте (на C#). Там использую webkit... Чтобы заполнять данные и нажимать кнопки мне нужен JavaScript. Программно заполнять логин и пароль у меня получилось, нажимать на кнопки тоже... А вот перейти по этой злополучной ссылке никак. Соответственно код HTML поменять не могу, так как он лежит на сервере... Могу только влиять на него извне... |
Автор: diadiavova 23.2.2013, 16:13 | ||
Seganapa, для того, чтобы программно вызвать клик по элементу, достаточно у этого элемента вызвать метод click (в вебките он точно поддерживается). Здесь проблема в том, что вполне возможно, что в данном случае для перехода на другую страницу обрабатывается не клик по ссылке, что-то другое. Ссылка здесь - пустышка по сути, в ней нет атрибута href, значит там какие-то фортели выполняются программно. Тут придется детально изучать страницу, возможно с использованием вспомогательных инструментов. От людей, сталкивавшихся с подобными проблемами знаю, что иногда их можно решить, если использовать мобильную версию сайта(если она существует ессно).
С вебкитом в нете не работал, но с тридентом точно к яваскрипту можно не прибегать, достаточно освоиться с библиотекой mshtml. |
Автор: Arantir 23.2.2013, 17:02 | ||
Seganapa, с таких вещей и надо было начинать. Тут не экстрасенсы сидят. Десятки раз в день все выкладывают свои коды и задают по ним вопросы. Догадаться, что приведенный код вообще не ваш и вы не можете его изменить - это уже из раздела работы с хрустальным шаром. Раз код не ваш и он рабочий, значит на этих пустышках висят скрипты. Значит вся их работы внутри onclick. Значит достаточно правильно выбрать эту ссылку и вызвать onclick.
Тем не менее, это не является "нажатием на ссылку", о чем вы в первом посте спрашивали. Это вызов функции (ивента), созданной верстальщиком того кода. |
Автор: Seganapa 23.2.2013, 17:10 | ||
Вот только это сработало! Помог хороший человек! |