2009-05-23 14 views
128

Czy istnieje sposób na kliknięcie linku na mojej stronie przy użyciu JavaScript?Jak programowo kliknąć łącze za pomocą javascript?

+4

Można tylko wykonać "kliknięcie" elementów typu input = "button". – Ballsacian1

+3

dlaczego chcesz kliknąć na link?przekierować użytkownika na inny adres URL? – Lucas

+0

@ Ballsacian1 - A więc, jak zrobiłbyś to dla elementu "przycisku"? (Co powiesz na ''?) Ponieważ sugerujesz to być może, możesz podać odpowiedź w przypadku, gdy OP może zmienić link do przycisku. –

Odpowiedz

-2

Nie można spowodować, aby mysz użytkownika zrobiła cokolwiek. Ale masz pełną kontrolę nad tym, co się dzieje, gdy zdarzenie się uruchamia.

Co można zrobić, to kliknąć na obciążenie ciała. W3Schools ma Przykładem here.

+0

hmm, masz rację, może on prosi o to ... – Canavar

+2

zły link. Dostaję 404 –

+4

@Neolit ​​to był zły link, zanim dostał 404'd tak czy inaczej. Bez strat. –

9

prostu tak:

<a id="myLink" onclick="alert('link click');">LINK 1</a> 
<a id="myLink2" onclick="document.getElementById('myLink').click()">Click link 1</a> 

lub na stronie obciążenia:

<body onload="document.getElementById('myLink').click()"> 
... 
<a id="myLink" onclick="alert('link click');">LINK 1</a> 
... 
</body> 
+0

Tak, ale musi nastąpić inne kliknięcie. –

+0

Nie możesz tego zrobić w żadnym wydarzeniu, np. Wczytywaniu strony? –

+0

Tak, masz rację Myślałem, że prosił o kliknięcie innego linku .. – Canavar

1

Zamiast klikać, można przekazać do adresu URL kliknięcia pójdzie do korzystania Javascript ?

Może uda ci się umieścić coś w ciele na Liście, żeby iść tam, gdzie chcesz.

29

Jeśli chcesz tylko zmienić aktualny adres strony, można to zrobić, po prostu robi to w JavaScript:

location.href = "http://www.example.com/test"; 
+37

Głosowałem, bo nie lubię odpowiedzi, które odpowiadają na temat przypadku użycia, a nie adres. "Przypuszczam, że to jest twoja intencja i nie jestem świadomy twoich ograniczeń, więc w sferze koncepcyjnej w koncepcyjnej próżni: użyj tego." – cazlab

+6

Głosowałem w górę, ponieważ szukałem jakiegoś fajnego rozwiązania klikania linku 'mailto:' w skrypcie użytkownika. Zdecydowanie uratował mi czas. Byłem przygotowany do stworzenia elementu "a" i zrobienia "programowego kliknięcia" http://stackoverflow.com/questions/809057/how-do-i-programmically-click-on-an-element-in-firefox –

+1

Ja też próbowałem wywoływać metodę 'click()' zaproponowaną gdzie indziej i wyżej i nie działała ona w IE9, ale ustawienie 'location.href' faktycznie wysłało wiadomość e-mail z linku' mailto: '. Świetne rozwiązanie! – ajeh

2

może po prostu przekierować je do innej strony. Właściwie to dosłownie kliknięcie linku i podróż do niego wydaje się bezsensowna, ale nie znam całej historii.

+0

W moim przypadku nie wiem, czy link ma cel "_blank", więc nie wiem, czy powinienem użyć location.href lub window.open. Krótszy czas wywołania kliknięcia. Istnieją przypadki użycia, na przykład możesz chcieć wystrzelić zdarzenie takie jak otwarcie modalbox. – dxvargas

40

Ta funkcja działa co najmniej w przeglądarce Firefox i Internet Explorer. Działa dowolne procedury obsługi zdarzeń dołączone do łącza i ładuje połączoną stronę, jeśli procedury obsługi zdarzeń nie anulują domyślnej akcji.

function clickLink(link) { 
    var cancelled = false; 

    if (document.createEvent) { 
     var event = document.createEvent("MouseEvents"); 
     event.initMouseEvent("click", true, true, window, 
      0, 0, 0, 0, 0, 
      false, false, false, false, 
      0, null); 
     cancelled = !link.dispatchEvent(event); 
    } 
    else if (link.fireEvent) { 
     cancelled = !link.fireEvent("onclick"); 
    } 

    if (!cancelled) { 
     window.location = link.href; 
    } 
} 
+2

Matthew jest poprawny, a http://stackoverflow.com/questions/809057/how-do-i-programmically-click-on-an-element-in-firefox zawiera więcej informacji o tym, dlaczego. Cross browser to zabawa :) –

+1

działa również doskonale w Chrome. Dzięki! –

+1

nie respektuje atrybutu 'target' lub' ' –

156
document.getElementById('yourLinkID').click(); 
+13

Właściwie jak dotąd działało we wszystkich przeglądanych przeglądarkach, w tym IE, Safari, Chrome, Firefox i Opera. – arik

+2

Używam tego, aby zapisać plik, który dynamicznie tworzę na mojej stronie internetowej. link zawiera wszystkie informacje, a teraz mam tylko przycisk, który wywołuje save i plik jest pobierany. Dziękuję za pomoc. Używam tego w Chrome. – GreenGiant

+0

Cieszę się, że mogę pomóc! :) – arik

-2

Client Side JS funkcja automatycznie po kliknięciu łącza ...

Oto przykład gdzie można sprawdzić wartość ukrytego wejścia formy, która posiada błąd przekazywane z serwer .. Po stronie klienta JS sprawdza jego wartość i wypełnia błąd w innej lokalizacji, którą określasz .. w tym przypadku wyskakującym modulem logowania.

var signUperror = document.getElementById('handleError') 

if (signUperror) { 
    if(signUperror.innerHTML != ""){ 
    var clicker = function(){ 
    document.getElementById('signup').click() 
    } 
    clicker() 
    } 
} 
6

JQuery sposób do kliknięcia łącza jest

$('#LinkID').click(); 

Dla mailto linku, musisz napisać następujący kod

$('#LinkID')[0].click(); 
+0

To nie działa. To nie jest odpowiedź na pytanie, które zadał. Byłoby to negatywne, gdybym miał więcej punktów. –

+0

To nie działa? Czy próbowałeś? Mam nadzieję, że rozumiesz, co oznacza "LinkID". Byłbym bardzo zaskoczony, gdyby ktoś teraz na dzień był wystarczająco zacofany, aby js bez jQuery. W każdym razie, nie krępuj się po zdobyciu punktów –

+0

To naprawdę nie działa. –

0

dla mnie, udało mi się zrobić to praca, która droga. Wdrożyłem automatyczne kliknięcie w 5000 milisekund, a następnie zamknąłem pętlę po 1000 milisekund. Potem było tylko 1 automatyczne kliknięcie.

<script> var myVar = setInterval(function ({document.getElementById("test").click();}, 500); setInterval(function() {clearInterval(myVar)}, 1000); </script> 
-1

Wiele z powyższych metod zostało uznanych za przestarzałe. Jest to obecnie zaleca się stosowanie konstruktora znaleźć here

function clickAnchorTag() { 
    var event = document.createEvent('MouseEvent'); 
    event = new CustomEvent('click'); 
    var a = document.getElementById('nameOfID'); 
    a.dispatchEvent(event); 
} 

Spowoduje to tag kotwicy należy kliknąć, ale to przyzwyczajenie pokazać czy blokery pop-up są aktywne, dzięki czemu użytkownik będzie musiał zezwolić na wyskakujące okienka.

Powiązane problemy