Trên cơ sở nào kiểm tra if (document.addEventListener)
trả lại false
? Có cách nào chúng ta có thể thay đổi điều này không?lý do tại sao có thể kiểm tra nếu (document.addEventListener) trả về false
Trả lời
Nó trả về giá trị sai (mặc dù không thực sự là false
) nếu nó không được xác định.
Đây là thử nghiệm tiêu chuẩn feature (AKA object) detection.
Bạn có thể thay đổi bằng cách triển khai phiên bản của riêng bạn. Thông thường, bạn sẽ sử dụng chức năng này trong một hàm bao bọc với } else {
có xử lý cụ thể của IE.
if (document.addEventListener)
đánh giá là false
nếu không có phương pháp addEventListener
trong document
. Kiểm tra này thường được thực hiện để xem bạn có thể sử dụng phương thức này để đính kèm sự kiện vào phần tử DOM hay không (hoạt động trong hầu hết các trình duyệt ngoại trừ IE).
có cách nào chúng ta có thể thay đổi điều này không?
Câu hỏi này tôi hoàn toàn không hiểu. Có lẽ, bạn muốn một cái gì đó như document.attachEvent('onload', callback);
cho IE. Bạn thực sự không thể thêm phương thức addEventListener
vào tài liệu (tốt, có thể bạn có thể, nhưng nó sẽ không có ý nghĩa).
i có nghĩa là có bất cứ điều gì tôi có thể làm để thêm phương pháp này vào tài liệu? – Miroo
@Miroo Không, nhưng bạn có thể sử dụng cách cụ thể của IE để xử lý các sự kiện. (như 'onload' trong ví dụ của tôi) –
và nó hoạt động với tôi trên IE9 nhưng trên một ứng dụng khác theo khuôn khổ 4 – Miroo
Nếu đoạn mã này trả false
, điều này có nghĩa rằng các tài sản addEventListener
phương pháp không được hỗ trợ bởi trình duyệt. Đây là số case for Internet Explorer, trong đó attachEvent
được sử dụng thay thế:
if (document.addEventListener){
document.addEventListener(...);
} else if (document.attachEvent){
document.attachEvent(...);
}
- 1. Nếu call_user_func có nghĩa vụ trả về false thì sao?
- 2. Tại sao Url.IsLocalUrl trả về false nếu URL chứa một đoạn?
- 3. Tại sao Integer.respond_to? (: Even?) Trả về false?
- 4. Tại sao Type.IsByRef cho kiểu String trả về false nếu String là một kiểu tham chiếu?
- 5. tại sao sql = FALSE luôn trả về true
- 6. Tại sao System.IO.File.Exists (đường dẫn chuỗi) trả về false?
- 7. Tại sao double.TryParse ("0.0000", out doubleValue) trả về false?
- 8. Tại sao QFile :: canReadLine() luôn trả về false?
- 9. Tại sao is_a? trả về false cho lớp Hash?
- 10. get_browser() trả về FALSE
- 11. Html.CheckBox trả về false nếu tàn tật, thậm chí nếu seleced
- 12. EntityManager.contains() trả về false sau khi vẫn tồn tại()
- 13. HtmlElement.Parent trả về false parent
- 14. isProviderEnabled (LocationManager.NETWORK_PROVIDER) trả về false
- 15. Tại sao Request.IsSecureConnection trả về false khi đúng là mong đợi
- 16. lý do tại sao memcached?
- 17. lý do tại sao math.Ceiling (double a) không trả về int trực tiếp?
- 18. Khi nào có thể ManualResetEvent.Set() trả về false?
- 19. lý do tại sao một số mp3 trên ứng dụng trả về mime_content_type/octet-stream
- 20. lý do tại sao super.getClass() trong một phân lớp trả về tên lớp con
- 21. string.matches (". *") Trả về false
- 22. PrincipalContext.ValidateCredentials luôn trả về FALSE
- 23. Nếu (ModelState.IsValid == false) trả về View(); hoặc Xem (mô hình) ;?
- 24. sd.canWrite() luôn trả về false
- 25. int.TryParse() trả về false cho "#. ##"
- 26. Tại sao System.Type.GetType ("Xyz") trả về null nếu typeof (Xyz) tồn tại?
- 27. Tại sao JBuilder không trả về nội dung phản hồi trong JSON khi kiểm tra RSPEC
- 28. Tại sao Oracle trả về chuỗi cụ thể nếu các giá trị 'orderby' giống hệt nhau?
- 29. Tuyên bố chuẩn bị Mysqli - Trả về False, nhưng tại sao?
- 30. TryParseExact trả về false, mặc dù tôi không biết tại sao
Nếu bạn đang sử dụng Internet Explorer, nó sẽ trả về false vì nó có phương pháp riêng. –