Mam link na mojej stronie. Próbuję zautomatyzować kilka kliknięć hiperłącza do celów testowych. Czy jest jakiś sposób na symulację 50 kliknięć hiperłącza za pomocą JavaScript?
<a href="#" target="_blank" onclick="javascript:Test("Test");">MSDN</a>
Szukam wyzwalacza zdarzenia onClick z JavaScript.
javascript
dom-events
użytkownik171523
źródło
źródło
for(
.AKTUALIZACJA
To była stara odpowiedź. W dzisiejszych czasach powinieneś po prostu użyć kliknięcia . Aby uzyskać bardziej zaawansowane uruchamianie zdarzeń, użyj dispatchEvent .
Oryginalna odpowiedź
Oto, czego używam: http://jsfiddle.net/mendesjuan/rHMCy/4/
Zaktualizowano do pracy z IE9 +
Zauważ, że dzwonienie
fireEvent(inputField, 'change');
nie oznacza, że faktycznie zmieni pole wprowadzania. Typowy przypadek użycia do wywołania zdarzenia zmiany ma miejsce, gdy programowo ustawiasz pole i chcesz wywoływać procedury obsługi zdarzeń, ponieważ wywołanieinput.value="Something"
nie wyzwala zdarzenia zmiany.źródło
jQuery
czy nie). Mogę udzielić bardziej znaczącej pomocy, jeśli zadasz nowe pytanie z dokładnym kodem, którego próbujesz, ale nie działa.Co
robi to właśnie wywoływanie
onclick
funkcjil
, to znaczy, jeśli ustawiłeś ją za pomocąl.onclick = myFunction;
. Jeśli nie ustawiłeśl.onclick
, nic nie robi. W przeciwieństwie,symuluje kliknięcie i odpala wszystkie moduły obsługi zdarzeń, niezależnie od tego, czy zostały dodane za pomocą
l.addEventHandler('click', myFunction);
, w HTML, czy w jakikolwiek inny sposób.źródło
window
obiektu, nie ujawni on magiczniewindow.click
funkcji.Wstydzę się, że jest tak wiele nieprawidłowych lub nieujawnionych częściowych zastosowań.
Najłatwiej to zrobić za pomocą Chrome lub Opery (moje przykłady będą korzystać z Chrome) za pomocą konsoli. Wprowadź następujący kod do konsoli (zazwyczaj w 1 linii):
To wygeneruje wymagany wynik
źródło
.click()
nie działa z Androidem (spójrz na dokumenty Mozilli , w sekcji mobilnej). Za pomocą tej metody możesz wywołać zdarzenie kliknięcia:Z tego postu
źródło
.click()
nie działa na Androidzie” W rzeczywistości najnowsza tabela mówi „Kompatybilność nieznana”.Użyj środowiska testowego
Może to być pomocne - http://seleniumhq.org/ - Selenium to zautomatyzowany system testowania aplikacji internetowych.
Możesz tworzyć testy za pomocą wtyczki Firefox Selenium IDE
Ręczne odpalanie wydarzeń
Aby ręcznie uruchamiać zdarzenia we właściwy sposób, musisz użyć różnych metod dla różnych przeglądarek - albo gdzie
el.dispatchEvent
lubel.fireEvent
gdzieel
będzie twój element Anchor. Wierzę, że oba będą wymagały zbudowania obiektu Event do przekazania.Alternatywnym, nie do końca poprawnym, szybkim i brudnym sposobem byłoby:
źródło
IE9 +
Przykład użycia:
Źródło: https://plainjs.com/javascript/events/trigger-an-event-11/
źródło
Uczciwe ostrzeżenie:
element.onclick()
nie zachowuje się zgodnie z oczekiwaniami. Działa tylko w obrębie koduonclick="" attribute
, ale nie wyzwala domyślnego zachowania.Miałem podobny problem z tym, że przycisk opcji nie był ustawiony na sprawdzony, mimo że
onclick
funkcja niestandardowa działała poprawnie. Musiałem dodać,radio.checked = "true";
aby to ustawić. Prawdopodobnie to samo dotyczy innych elementów (poa.onclick()
nich też powinno byćwindow.location.href = "url";
)źródło
onclick()
oznaczałoby, żeevent
obiekt nie zostanie automatycznie zdefiniowany przez przeglądarkę, więc typowe metody, takie jakevent.stopPropagation()
, również będą niezdefiniowane.źródło