2010-12-13 9 views
6

Muszę zasymulować kliknięcie łącza przy użyciu JavaScript. Czy ktokolwiek mógłby mi powiedzieć, jak można to osiągnąć? Powinien działać w FireFox i IE.Symulacja kliknięcia łącza z JavaScript

Z góry dziękuję.

+1

w jQuery byłoby '$ ('# link') wyzwalania ('kliknięcie');.' – mpen

+3

Nie można używać jQuery. – cycero

Odpowiedz

1

to powinno załatwić sprawę

document.getElementById('yourLink').click(); 
+1

To nie działa w FireFox. – cycero

+0

Wierzę, że ff nie rozumie kliknięcia w linki. Mógłbyś to zawinąć w zakres, a następnie zasymulować kliknięcie lub spróbuj poniżej: window.location.href = document.getElementById ('yourLink'). Href; –

+1

@ Jinesh, czasami potrzebujemy czegoś więcej niż przekierowania po kliknięciu łącza :) – dheerosaur

0
document.getElementById('mylink').click() 
+0

To nie działa w FireFox. – cycero

+0

Nie istnieje żadna metoda "kliknięcia" dla obiektu łącza, o ile pamiętam. – Anurag

+0

ta metoda jest tylko dla IE –

3

Jak wspomniano przez innych, można użyć metody click dla IE. W przypadku Firefoksa spójrz na numer element.dispatchEvent. Zobacz przykład w dokumentacji.

+0

Dla tych, którzy są zbyt leniwi, aby kopać na przykład ;-) https://developer.mozilla.org/en-US/docs/Web/Guide/Events/Creating_and_triggering_events # Triggering_built-in_events – Ash

+0

również, może to być przydatne, aby pomóc w określeniu kiedy użyć tego kodu http://stackoverflow.com/questions/9847580/how-to-detect-safari-chrome-ie-firefox-and -opera-przeglądarka – Ash

4
var el = document.getElementById('link'); 

// Firefox 
if (document.createEvent) { 
    var event = document.createEvent("MouseEvents"); 
    event.initEvent("click", true, true); 
    el.dispatchEvent(event); 
} 
// IE 
else if (el.click) { 
    el.click(); 
} 

example

+0

To nie działa ... – cycero

+0

w firefoxie lub IE, czy w obu? – Anurag

+0

Nie działa w obu :) – cycero

Powiązane problemy