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 でこの問題を解決するには、ポリフィルを使用した Array オブジェクトのindexOf() 関数:
if (!Array.prototype.indexOf) { Array.prototype.indexOf = function(elt /*, from*/) { // Code from MDN or another compatible implementation }; }
このポリフィルを実装した後、indexOf() メソッドは、IE8 およびネイティブ サポートが不足している可能性のあるその他のブラウザで期待どおりに機能するはずです。
以上がIE8 で「Array.indexOf()」が機能しないのはなぜですか?どうすれば修正できますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。