|
2 / 2 / 0
Регистрация: 19.01.2019
Сообщений: 33
|
|||||||||||
Программно вызвать событие ссылки19.01.2019, 09:29. Показов 5064. Ответов 17
Метки нет (Все метки)
Добрый день.
имеется необходимость организовать автоматическое нажатие на кнопки некоторой страницы html, нажимать нужно на элементы такого плана - это ссылка, при нажатии на которую открывается форма заполнения отклика: код одного из элементов приведен ниже.
Как получить этот элемент "href"? Добавлено через 20 минут такой код аналогично не приводит к нужному результату: var array = []; var links = document.getElementsByTagName("a"); alert(links.length); // попытка вызвать все ссылки for(var i=0, max=links.length; i<max; i++) { try { alert(links[i].href); links[i].onclick; array.push(links[i].href); } catch (err) { alert(err.message); } } первые алерты отрабатывает, ошибок нету но ссылки не нажимаются. Как нажать все необходимые ссылки на странице, ну а потом уже и те которые в первом посте?
0
|
|||||||||||
| 19.01.2019, 09:29 | |
|
Ответы с готовыми решениями:
17
вызвать событие у чекбокса
|
|
6496 / 3907 / 2006
Регистрация: 14.06.2018
Сообщений: 6,781
|
||||||
| 19.01.2019, 19:42 | ||||||
|
По первой половине списка вопросов:
1
|
||||||
|
108 / 76 / 27
Регистрация: 14.11.2016
Сообщений: 260
|
||||||
| 19.01.2019, 22:20 | ||||||
|
Ну делать 1.onclick = 2.onclick() не очень правильно. Вам нужно использовать dispatchEvent:
1. Составные селекторы вида ".someclass[attr='value']" 2. Создание собственных событий (new Event()) 3. Применение событий на элементах DOM (dispatchEvent)
1
|
||||||
|
2 / 2 / 0
Регистрация: 19.01.2019
Сообщений: 33
|
|
| 20.01.2019, 01:20 [ТС] | |
|
ёк.
будем читать. т.е. верно я понял, что задача может быть реализована и нужно продолжать копать ?
0
|
|
|
108 / 76 / 27
Регистрация: 14.11.2016
Сообщений: 260
|
|
| 20.01.2019, 08:25 | |
|
Абсолютно. Вот вам ссылочка в довесок https://learn.javascript.ru/dispatch-events
1
|
|
|
супермизантроп
3941 / 2979 / 692
Регистрация: 18.04.2012
Сообщений: 8,629
|
||
| 20.01.2019, 09:35 | ||
|
если же желаете покликать по ссылкам чужой страницы, то разочарую вас -- в сети это невозможно из-за правила ограничения домена для чужих страниц можно реализовать вами желаемое только для конкретного браузера конкретного компьютера
1
|
||
|
2 / 2 / 0
Регистрация: 19.01.2019
Сообщений: 33
|
||
| 20.01.2019, 09:41 [ТС] | ||
|
через f12: Чужая страница отображается в моем конкретном браузере на моем же конкретном компьютере, а потом обкатанный скрипт запихать в гризи манки, для использования на этом же компьютере, но страницы будут динамические, но домен один , типа вот страницы ютуба, ониж все разные - под каждую конкретную страницу писать это не реально мне каж. или можно скрипт менять динамически под каждую страницу на крайний случай - так получится? мне нужно тупо рассылку по кнопкам сделать или как-то оптимизировать рассылку. Добавлено через 2 минуты в общем смысл , делаю запрос, получаю страницу с сылками, нажимаю на ссылку открывается окошко в это окошко нужно ввести текст и нажать "отправить" в этом же окошке, далее перейти на следующую подходящую ссылку первой страницы и повторить операцию. Все это в конкретно моем браузере. Это возможно организовать javascript-ом? то не противоречит никакой политике? или тут нужно на C++ программировать свой браузер?
0
|
||
|
супермизантроп
3941 / 2979 / 692
Регистрация: 18.04.2012
Сообщений: 8,629
|
|
| 20.01.2019, 12:00 | |
|
нет, C++ не нужен
обезьянка (+ ваш js-файл для неё) вполне справятся но по-любому вам придётся научиться программно отыскивать нужные вам ссылки, поля для ввода и кнопки в HTML-коде "чужой" страницы по каким-то их признакам: либо по набору уникальных атрибутов тегов этих элементов, либо по местоположению (окружению) этих тегов в коде
1
|
|
|
11 / 9 / 2
Регистрация: 23.01.2017
Сообщений: 56
|
||||||
| 20.01.2019, 14:02 | ||||||
|
JSJuni, банально просто прощелкать все ссылки так:
Критерий выборки надо анализировать по странице, что будите парсить)
1
|
||||||
|
2 / 2 / 0
Регистрация: 19.01.2019
Сообщений: 33
|
||||||
| 24.01.2019, 13:03 [ТС] | ||||||
|
коллеги, всем привет еще раз.
у меня такой дурацкий вопрос: Необходимо получить доступ к телу открываемого окна из вызывающего кода, в данном случае это кажется попуп окно или форма. Каким образом необходимо инициировать событие нажатие Кнопки_Ссылки чтобы получить тело открытой формы?
0
|
||||||
|
108 / 76 / 27
Регистрация: 14.11.2016
Сообщений: 260
|
|
| 24.01.2019, 13:09 | |
|
Всплывающее окно с фреймом или просто модальное окно с диалогом?
Добавлено через 29 секунд JSJuni, Всплывающее окно с фреймом или просто модальное окно с диалогом?
0
|
|
|
2 / 2 / 0
Регистрация: 19.01.2019
Сообщений: 33
|
||||||
| 24.01.2019, 15:07 [ТС] | ||||||
|
точно не всплывающее
а как узнать какое оно?
0
|
||||||
|
11 / 9 / 2
Регистрация: 23.01.2017
Сообщений: 56
|
|
| 24.01.2019, 15:45 | |
|
JSJuni, покажите как вы его вызываете. Тогда будет проще сказать, как и что получить.
0
|
|
|
2 / 2 / 0
Регистрация: 19.01.2019
Сообщений: 33
|
||||||
| 24.01.2019, 15:53 [ТС] | ||||||
|
собственно я лишь взял код приведенный выше.
но как узнать куда именно кнопка шлет данные, как составить правильный XthtpЗапрос? все вроде бы около , но собрать воедино не получается.
0
|
||||||
|
11 / 9 / 2
Регистрация: 23.01.2017
Сообщений: 56
|
|
| 24.01.2019, 16:35 | |
|
JSJuni,
thisHref Эта переменная содержит весь href ссылки. Если в начале стоит относительный путь через точки и слеш, то нужно просто проанализировать его и подставить необходимую информацию. Отправить через запрос и получить информацию. Что касается кнопок, то тут много вопросов: 1. кнопка является просто внешним отображением ссылки(например, находится в <a></a> - тогда анализируем ссылку(хотя он откроется в проходе цикла выше) 2. Кнопка имеет свой JS обработчик(тогда надо его анализировать) 3. Кнопка является кнопкой submit, что отправляет данные через форму, тогда надо анализировать форму, к которой она относиться(к слову, обработчик JS может стоять и на такой кнопке)
1
|
|
|
супермизантроп
3941 / 2979 / 692
Регистрация: 18.04.2012
Сообщений: 8,629
|
||
| 25.01.2019, 17:52 | ||
|
для ссылки <a href="путь"> свойство ссылка.href вернёт абсолютный путь вне зависимости от того, какой путь в атрибуте указан: абсолютный или относительный а вот для того, чтобы получить именно то, что написано в этом атрибуте в HTML-коде, конструкция будет чуть длиннее: ссылка.getAttribute ('href')
2
|
||
|
11 / 9 / 2
Регистрация: 23.01.2017
Сообщений: 56
|
|
| 25.01.2019, 19:50 | |
|
kalabuni, да, действительно так. Однако в моем примере используется getAttribute.
Почему через getAttribute? - потому что в топе просили не только ссылки, но и кнопки, т.е. есть возможно понадобятся другие атрибуты(что-то вроде универсального способа). Для топикастера(JSJuni) - вернее всего с ссылками сделать как указано выше.
1
|
|
|
2 / 2 / 0
Регистрация: 19.01.2019
Сообщений: 33
|
|
| 26.01.2019, 10:35 [ТС] | |
|
коллеги, всем спасибо.
0
|
|
| 26.01.2019, 10:35 | |
|
Помогаю со студенческими работами здесь
18
Как програмно вызвать событие OnChange, OnClick ??? Как вызвать событие Onclick без нажатия на кнопку Как программно поменять текст ссылки? Программно вызвать последнее событие Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога
Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
|
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование
. \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json>
Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом.
# Check if. . .
|
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так:
https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347
Основана на STM32F303RBT6.
На борту пять. . .
|
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
|
|
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу,
и светлой Луне.
В мире
покоя нет
и люди
не могут жить в тишине.
А жить им немного лет.
|
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила»
«Время-Деньги»
«Деньги -Пуля»
|
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога
Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
|
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога
Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
|