2012-10-30 45 views
7

Tôi muốn sử dụng phương pháp js .click() như sau:.click() phương pháp, hỗ trợ trình duyệt

document.getElementById(id).click(); 

Nhưng vì điều quan trọng là nó hoạt động, tôi đã tự hỏi những gì trình duyệt hỗ trợ phương pháp .click() có.

+2

Nếu bạn thực sự lo lắng về tính tương thích giữa nhiều trình duyệt, thì tôi khuyên bạn nên sử dụng thư viện JS như jQuery. –

+0

Bạn có biết điều gì có thể thay thế phương thức '.click()' trong jQuery? – ghego1

+2

Phương thức ['.click'] (http://api.jquery.com/click/) :-) –

Trả lời

1

Trình duyệt duy nhất tôi gặp phải không hỗ trợ .click() là Safari. Safari hỗ trợ .click() trên các nút (ví dụ: <input type="button" />) nhưng không hỗ trợ các yếu tố khác như yếu tố neo (ví dụ: <a href="#">Click Me</a>).

Đối với Safari, bạn phải sử dụng một cách giải quyết:

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); 
    } 
} 

Sử dụng chức năng trên, bạn có thể hỗ trợ 90% + của trình duyệt.

Đã kiểm tra trong IE7-10, Firefox, Chrome, Safari.

+0

Hoàn toàn chính xác, ngay cả khi một câu hỏi cũ, tôi vẫn gặp rắc rối với safari và click() ngày trước đây miễn phí trong một dự án nhỏ mà tôi đang làm việc – ghego1

Các vấn đề liên quan