[javascript] 브라우저가 <input type = ‘date’>를 지원하는지 어떻게 알 수 있습니까?

중복 가능성 :
HTML5 유형 감지 및 플러그인 초기화

<input type=date>

(선택적) 사용자 에이전트 제공 datepicker로 입력을 만들어야하지만 아직 널리 지원되지 않으므로 jQuery UI Datepicker를 사용하고 있습니다. 브라우저가 자신의 datepicker를 사용하고 브라우저에 그런 것이없는 경우에만 jQuery UI를 사용하도록 허용하려면 어떻게해야합니까?

현재 나는 Opera에만 datepicker가 내장되어 있다고 생각하지만 Opera에 대한 테스트는 분명히 나쁠 것입니다. 이 기능을 감지 할 수있는 방법이 있습니까 (휴대용으로 가능하다면)?



답변

다음 메서드는 대부분의 브라우저에서 일부 입력 유형이 지원되는지 확인합니다.

function checkInput(type) {
    var input = document.createElement("input");
    input.setAttribute("type", type);
    return input.type == type;
}

그러나 simonox 가 의견에서 언급했듯이 일부 브라우저 (Android 스톡 브라우저)는 특정 유형 (날짜)을 지원하는 척하지만 날짜 입력을위한 UI를 제공하지 않습니다. 그래서 simonox 는 날짜 필드에 잘못된 값을 설정하는 트릭을 사용하여 구현을 개선했습니다. 브라우저가이 입력을 삭제하면 datepicker도 제공 할 수 있습니다 !!!

function checkDateInput() {
    var input = document.createElement('input');
    input.setAttribute('type','date');

    var notADateValue = 'not-a-date';
    input.setAttribute('value', notADateValue);

    return (input.value !== notADateValue);
}


답변