2012-04-18 27 views
7

Tôi đang cố gắng phát hiện xem một sự kiện webkit 'webkitAnimationEnd' có được trình duyệt hỗ trợ hay không, để làm như vậy, tôi muốn kiểm tra xem sự kiện có tồn tại hay không. Nhưng tôi dường như không thể hiểu được làm thế nào. Có ai có gợi ý gì không?JS Có cách nào để kiểm tra xem sự kiện có tồn tại không?

+0

là câu hỏi của bạn về sự kiện này nói riêng, hay nói chung? – Phrogz

+0

Nó có nghĩa là chung chung. – Mark

Trả lời

7

Detecting event support without browser sniffing gợi ý rằng điều này nên làm việc:

'onWebkitAnimationEnd' in document.createElement('div'); 
+0

+1 Có vẻ tốt, mặc dù _technically_ sự hiện diện của một sự kiện-handler-as-bất động sản không giống như biết rằng trình duyệt sẽ kích hoạt sự kiện. (Trình duyệt có thể phơi bày tài sản nhưng có triển khai bị hỏng hoặc bạn có thể dễ dàng triển khai sự kiện mà không có trình xử lý sự kiện.) – Phrogz

+0

Tôi sẽ giả định rằng nếu sự kiện tồn tại thông qua cách tiếp cận này, trình duyệt sẽ hỗ trợ nó và bắn nó khi thích hợp. – Mark

+1

Hm, điều này không được đánh giá là 'true' trong Chrome 18 hoặc Safari 5. Có thể là một vấn đề, thời gian để đào sâu hơn. –

-3

Bạn có ý nghĩa gì khi "được hỗ trợ"? Giả sử bạn có nghĩa là "Sẽ được trình duyệt kích hoạt theo một nhóm trường hợp cụ thể", thì bạn chỉ cần tạo lại những trường hợp đó (thông qua tập lệnh) và xem sự kiện đã được kích hoạt hay chưa; bạn có thể sử dụng trình xử lý thời gian chờ để phản hồi âm nếu sự kiện chưa bao giờ được xử lý.

Phát hiện các tính năng bằng cách kiểm tra chúng, không phải bằng cách tìm bất kỳ nơi nào khác.

+0

Tôi nghi ngờ anh ta muốn kiểm tra thời gian chạy để anh ta có thể thực thi một đường dẫn mã khác cho các máy khách không hỗ trợ sự kiện. – Matt

+0

@ Tôi cũng nghi ngờ như vậy, nhưng điều đó không trái với câu trả lời của tôi. Bạn có thể dễ dàng, thủ tục tạo ra các yếu tố/phong cách/bất cứ điều gì cần thiết, đăng ký xử lý sự kiện, và một xử lý 'timeout', và xác định xem xử lý sự kiện của bạn đã từng được gọi. – Phrogz

+0

ahh, tôi đã hiểu. Tôi nghĩ bạn đang đề xuất thử nghiệm trong mỗi trình duyệt a-prioi – Matt

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