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.
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.
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.
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
Zgodnie z MDN, HTMLElement.click()
jest obsługiwany przez Chrome 20+, Firefox 5+ i Safari 6+. Ale ten might be inaccurate.
Jeśli naprawdę martwisz się kompatybilnością z różnymi przeglądarkami, proponuję użyć biblioteki JS, takiej jak jQuery. –
Czy wiesz, co może zastąpić metodę '.click()' w jQuery? – ghego1
Metoda ['.click'] (http://api.jquery.com/click/) :-) –