首頁 > web前端 > js教程 > 主體

為什麼 `Array.indexOf()` 在 IE8 中不起作用,如何修復它?

Barbara Streisand
發布: 2024-11-27 06:24:11
原創
897 人瀏覽過

Why Doesn't `Array.indexOf()` Work in IE8, and How Can I Fix It?

解決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() 函數對於使用polyfill 的Array物件:

if (!Array.prototype.indexOf) {
  Array.prototype.indexOf = function(elt /*, from*/) {
    // Code from MDN or another compatible implementation
  };
}
登入後複製

實現此 polyfill 後,indexOf() 方法應該在 IE8 和其他可能缺乏本機支援的瀏覽器中按預期運作。

以上是為什麼 `Array.indexOf()` 在 IE8 中不起作用,如何修復它?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板