2012-10-30 12 views
7

Chciałbym użyć metody js .click() następująco:.Kliknij(), wsparcie przeglądarka

document.getElementById(id).click(); 

Ale ponieważ jest to istotne, że to działa, zastanawiałem się, co przeglądarek obsługuje metodę .click() ma.

+2

Jeśli naprawdę martwisz się kompatybilnością z różnymi przeglądarkami, proponuję użyć biblioteki JS, takiej jak jQuery. –

+0

Czy wiesz, co może zastąpić metodę '.click()' w jQuery? – ghego1

+2

Metoda ['.click'] (http://api.jquery.com/click/) :-) –

Odpowiedz

1

Jedyną przeglądarką, z którą się spotkałem, nie obsługuje .click() jest Safari. Safari obsługuje .click() na przyciskach (na przykład <input type="button" />), ale nie na innych elementach, takich jak elementy kotwiące (np. <a href="#">Click Me</a>).

Na Safari, trzeba użyć rozwiązania:

function click_by_id(your_id) 
{ 
    var element = document.getElementById(your_id); 
    if(element.click) 
     element.click(); 
    else if(document.createEvent) 
    { 
     var eventObj = document.createEvent('MouseEvents'); 
     eventObj.initEvent('click',true,true); 
     element.dispatchEvent(eventObj); 
    } 
} 

Stosując powyższą funkcję można obsługiwać 90% + przeglądarek.

Testowany w IE7-10, Firefox, Chrome, Safari.

+0

Całkowicie poprawne, nawet jeśli stare pytanie, wciąż miałem problemy z safari i click() kilka dni temu w małym projekcie, nad którym pracowałem – ghego1