Nếu tôi đặt một điều khiển <input type="range">
trên biểu mẫu, một số trình duyệt sẽ (chính xác) hiển thị điều khiển thanh trượt và một số khác sẽ không biết nội dung range
là gì và sẽ hiển thị hộp văn bản thay thế. Xử lý trường hợp này sẽ yêu cầu xác nhận thêm, vì một hộp văn bản có thể chứa bất kỳ văn bản tùy ý nào. Có JavaScript nào tôi có thể đưa vào trang để nói "nhìn vào điều khiển này trong DOM và nếu đó là điều khiển hộp văn bản, hãy foo()
"?Cách phát hiện xem có hỗ trợ điều khiển đầu vào HTML5 không?
Trả lời
Điều này site recommends using Modernizer:
Kiểm tra loại đầu vào HTML5 sử dụng kỹ thuật phát hiện # 4. Đầu tiên, bạn tạo một phần tử giả <input>
trong bộ nhớ. Kiểu đầu vào mặc định cho tất cả các thành phần <input>
là "văn bản". Điều này sẽ chứng minh là cực kỳ quan trọng.
var i = document.createElement("input");
Tiếp theo, đặt thuộc tính type trên phần tử giả thành loại đầu vào bạn muốn phát hiện.
i.setAttribute("type", "color");
Nếu trình duyệt của bạn hỗ trợ kiểu nhập cụ thể đó, thuộc tính type sẽ giữ lại giá trị bạn đã đặt. Nếu trình duyệt của bạn không hỗ trợ loại đầu vào cụ thể đó, nó sẽ bỏ qua giá trị bạn đã đặt và thuộc tính type sẽ vẫn là "văn bản".
return i.type !== "text";
Thay vì tự viết 13 hàm riêng biệt, bạn có thể sử dụng Modernizr để phát hiện hỗ trợ cho tất cả các kiểu nhập mới được xác định trong HTML5. Modernizr sử dụng lại một phần tử <input>
để phát hiện có hiệu quả hỗ trợ cho tất cả 13 loại đầu vào. Sau đó, nó xây dựng một băm gọi là Modernizr.inputtypes
, có chứa 13 khóa (thuộc tính kiểu HTML5) và 13 giá trị Boolean (true nếu được hỗ trợ, false nếu không).
//check for native date picker
if (!Modernizr.inputtypes.date) {
// no native support for <input type="date"> :(
// maybe build one yourself with Dojo or jQueryUI
}
Kiểm tra HTML 5 shim ... cũng với shiv HTML 5 shiv. – ErikE
- 1. Phát hiện xem Lịch sử HTML5 có được hỗ trợ hay không
- 2. Phát hiện xem loại đầu vào = "ngày" có hỗ trợ trình giữ chỗ
- 3. Phát hiện hỗ trợ âm thanh html5 với Modernizr
- 4. Cách Kiểm tra xem trình duyệt có hỗ trợ HTML5 không?
- 5. Hỗ trợ cần điều khiển trong Java
- 6. Làm cách nào để phát hiện xem trình duyệt có hỗ trợ MJPEG không?
- 7. Cách phát hiện xem trình duyệt có hỗ trợ flash không?
- 8. JavaScript có thể phát hiện xem trình duyệt của người dùng có hỗ trợ gzip không?
- 9. Hỗ trợ Doctype HTML5
- 10. Tôi có thể phát hiện xem hiệu ứng bộ lọc CSS có được hỗ trợ không?
- 11. Phát hiện xem trình duyệt di động có hỗ trợ tràn hay không: di chuyển
- 12. Cách phát hiện định dạng video được hỗ trợ cho thẻ video HTML5?
- 13. Phát hiện xem phần tử Video HTML5 có đang phát
- 14. Phát hiện xem trình duyệt có hỗ trợ vị trí không:
- 15. Phát hiện hỗ trợ cho HTML5 <input form = ""> thuộc tính
- 16. Phát hiện hỗ trợ cho thuộc tính hộp cát iframe HTML5
- 17. HTML5 có hỗ trợ không gian tên không?
- 18. Làm cách nào để phát hiện hỗ trợ `focusin`?
- 19. "Pushing cùng dụ xem điều khiển nhiều hơn một lần không được hỗ trợ" ngoại lệ
- 20. Hỗ trợ API rung HTML5
- 21. Cách phát hiện xem Micrô có hiện diện không
- 22. Hỗ trợ thẻ âm thanh HTML5 có phân phát mp3 từ một tên miền khác không?
- 23. Hỗ trợ codec video HTML5
- 24. cách phát hiện xem video html5 có được phát nội tuyến
- 25. Trình duyệt webview có hỗ trợ tính năng html5 không?
- 26. Cách phát hiện hỗ trợ JSON trong javascript?
- 27. Làm cách nào để phát hiện hỗ trợ rel = "noreferrer"?
- 28. Làm cách nào để phát hiện xem trình duyệt có hỗ trợ các sự kiện di chuột không?
- 29. Javascript - phát hiện xem trình xử lý sự kiện có được hỗ trợ
- 30. Làm cách nào để phát hiện xem trình duyệt có hỗ trợ lớp giả định css không?
bản sao có thể có của [Cách kiểm tra, nếu đầu vào HTML5 được hỗ trợ?] (Http://stackoverflow.com/questions/8278670/how-to-check-if-a-html5-input-is -supported) – Mathletics