IE8의 Array.indexOf() 문제 해결
indexOf() 메서드는 최신 브라우저에서 배열 내의 요소를 검색하기 위해 널리 사용됩니다. 그러나 이전 버전의 Internet Explorer에서는 문제가 발생할 수 있습니다.
indexOf() 누락으로 인해 IE8에서 실패하는 예제 스크립트는 다음과 같습니다.
function CheckMe() { var allowed = new Array('docx','xls','xlsx', 'mp3', 'mp4', '3gp', 'sis', 'sisx', 'mp3', 'wav', 'mid', 'amr', 'jpg', 'gif', 'png', 'jpeg', 'txt', 'pdf', 'doc', 'rtf', 'thm', 'rar', 'zip', 'htm', 'html', 'css', 'swf', 'jar', 'nth', 'aac', 'cab', 'wgz'); var fileinput=document.getElementById('f'); var ext = fileinput.value.toLowerCase().split('.'); if ( allowed.indexOf(ext[1]) == -1) { document.getElementById('uploadsec').innerHTML = document.getElementById('uploadsec').innerHTML; alert('This file type is not allowed!'); } }
IE8용 솔루션 호환성
IE8에서 이 문제를 해결하려면 indexOf()를 명시적으로 정의해야 합니다. 폴리필을 사용하는 배열 객체에 대한 함수:
if (!Array.prototype.indexOf) { Array.prototype.indexOf = function(elt /*, from*/) { // Code from MDN or another compatible implementation }; }
이 폴리필을 구현한 후 indexOf() 메서드는 IE8 및 기본 지원이 부족할 수 있는 기타 브라우저에서 예상대로 작동해야 합니다.
위 내용은 IE8에서 `Array.indexOf()`가 작동하지 않는 이유는 무엇이며 어떻게 해결할 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!