Я хочу имитировать щелчок по любой ссылке на странице, используя JavaScript. Если эта ссылка имеет какую-то функцию, привязанную к ее событию ‘onclick’ (любым другим JS, над которым я не имею никакого контроля), то эта функция должна вызываться, иначе ссылка должна вести себя нормально и открывать новую страницу.
Я не уверен, что достаточно просто проверить значение обработчика ‘onclick’. Я хочу построить это так, чтобы оно работало на любом элементе ссылки.
У меня нет контроля над тем, какая функция может быть привязана к событию onclick ссылки, используя любую библиотеку JS (не обязательно jQuery) или просто используя JavaScript.
EDIT: с помощью ответов ниже, похоже, можно проверить обработчики событий, прикрепленные с помощью jQuery или с помощью onclick атрибута. Как я проверяю для обработчиков события, прикрепленных using addEventListener / any другая библиотека JS так, чтобы это было надежно?
Сегодня мы поговорим о том, как имитировать клик по ссылке при определенном событии. Задача на первый взгляд кажется простой, но имеются некоторые "подводные камни", которые мы сейчас и рассмотрим.
Например, на странице имеется 2 ссылки:
Задача: при клике по ссылке 1, сделать клик по ссылке 2 таким образом, что бы переход осуществился на урл ссылки 2. Первое, что приходит в голову, это следующий код:
Казалось бы код рабочий, но перехода по ссылке 2 не произойдет, хотя если мы заглянем в консоль, то увидим, якобы клик произошел по двум ссылкам, поэтому слегка модифицируем код:
Уже лучше, код работает и происходит переход по ссылке 2 во всех популярных браузерах, но каково же было мое удивление, когда оказалось, что он нерабочий в Safari, что бы исправить проблему, модифицируем код:
Теперь код работает во всех популярных браузерах, но мои страдания на этом не закончились. Так уж оказалось, что проект с которым я работаю, должен работать в ie7/8, поэтому мне пришлось переписать еще раз код и финальная его версия выглядит так:
Главная >> Frontend >> jQuery. Как программно нажать на download-ссылку? (click trigger on download-link)
В случае с download-ссылкой простой генерации триггера для нажатия на ссылку и соотв. начала скачивания, недостаточно. Требуется другой подход, пример которого в этой статье.
Допустим, что у нас есть ссылка следующего вида: