Tôi cần kiểm tra hỗ trợ trình giữ chỗ. Các công trình sau đây to lớn trong tất cả các trình duyệt hiện đại, cũng như IE7, IE8, IE9:Tính năng phát hiện đối tượng địa điểm của HTML5
$.support.placeholder = (function() {
var i = document.createElement("input");
return "placeholder" in i;
}());
Nó hoạt động, nhưng JSLint phàn nàn về việc sử dụng in
:
bất ngờ 'trong'. So sánh với không xác định hoặc thay vào đó hãy sử dụng phương thức hasOwnProperty .
Fine, vì vậy tôi sẽ cấu trúc lại nó như thế này:
$.support.placeholder = (function() {
var i = document.createElement("input");
return i.hasOwnProperty("placeholder");
}());
Bây giờ này qua JSLint mà không cần bất kỳ lỗi hoặc cảnh báo, nhưng nó phá vỡ trong IE7 và IE8 với hạt dẻ cũ này:
Đối tượng không hỗ trợ tài sản hoặc phương pháp 'hasOwnProperty'
Bất kỳ ý tưởng nào làm cho JSLint vui vẻ, như chúng tôi sẽ như IE7 và IE8?
Tạo một công cụ như jslint hạnh phúc không nhất thiết có nghĩa là làm cho mã của bạn tốt hơn miễn là bạn biết bạn đang làm gì. Nếu ông chủ của bạn muốn nó, hãy cho họ một số ví dụ tốt chứng tỏ họ ngu ngốc. – ThiefMaster
Tôi không có lý do tại sao jslint đề xuất chống lại 'in'. Nó đã được khoảng một thời gian vì vậy cần phải có hỗ trợ đầy đủ và nó khá trực quan. Để được hỗ trợ trình giữ chỗ, phần này rất chắc chắn: https://github.com/mathiasbynens/jquery-placeholder – ryanve