2
Modernizr은 브라우저가 끌어서 놓기를 지원하는지 감지하는 방법을 제공하지만 브라우저가 파일에 대해 끌어서 놓기를 지원하는지 적절하게 알리지 못합니다. 이 기능을 테스트 할 수 있습니까? 아니면 여전히 브라우저 스니핑이 필요한 종류입니까?dataTransfer.files 지원 테스트 기능을 사용할 수 있습니까?
Modernizr은 브라우저가 끌어서 놓기를 지원하는지 감지하는 방법을 제공하지만 브라우저가 파일에 대해 끌어서 놓기를 지원하는지 적절하게 알리지 못합니다. 이 기능을 테스트 할 수 있습니까? 아니면 여전히 브라우저 스니핑이 필요한 종류입니까?dataTransfer.files 지원 테스트 기능을 사용할 수 있습니까?
사용 Modernizr.filereader
는
의 dataTransfer가 모든 브라우저을 FileReader 트릭을 할해야합니다 그래서 만약 감지 (웹킷 등)에 노출하지 undetectables 중 하나입니다 감지합니다. 그리고 나는 어떤 브라우저 (안드로이드/사파리 등)에 있었는지 기억할 수 없지만 파일은 dataTransfer.files
대신 target.files
에 노출되어 있기 때문에 사격 이벤트 중에 객체가 실제로 존재하는 경우 탐지가 가능합니다.
if(typeof(e.dataTransfer) !== 'undefined' && typeof(e.dataTransfer.files) !== 'undefined') {
files = e.dataTransfer.files;
} else if(typeof(e.target.files) !== 'undefined') {
files = e.target.files;
} else {
//Bail out
}