Rumah > hujung hadapan web > tutorial js > Mengapa indexOf tidak berfungsi dengan betul dengan Array dalam IE8?

Mengapa indexOf tidak berfungsi dengan betul dengan Array dalam IE8?

Susan Sarandon
Lepaskan: 2024-12-07 11:05:14
asal
435 orang telah melayarinya

Why Doesn't indexOf Work Correctly with Arrays in IE8?

Anomali Fungsi indexOf dalam IE8 untuk Objek Tatasusunan

Fungsi JavaScript yang disediakan, direka untuk mengesahkan sambungan fail, menghadapi isu khususnya dalam IE8 semasa pelaksanaan pernyataan if ( allowed.indexOf(ext[1]) == -1). Kegagalan ini menimbulkan persoalan mengapa fungsi indexOf tidak dilaksanakan dengan betul dalam IE8.

Fungsi indexOf, kaedah asli dalam tatasusunan JavaScript, mengembalikan indeks kejadian pertama elemen tertentu dalam tatasusunan. Walau bagaimanapun, dalam versi Internet Explorer pra-IE9, fungsi ini tidak ditakrifkan untuk tatasusunan. Akibatnya, percubaan untuk menggunakan indexOf pada tatasusunan dalam IE8 mencetuskan ralat.

Penyelesaian

Untuk menangani percanggahan ini, polyfill boleh digunakan sebelum menggunakan indexOf fungsi. Polyfill ialah coretan kod yang memberikan keserasian dengan versi penyemak imbas yang lebih lama. Dalam keadaan ini, polyfill untuk Array.prototype.indexOf boleh dilaksanakan seperti berikut:

if (!Array.prototype.indexOf) {
  Array.prototype.indexOf = function(elt, from) {
    var len = this.length >>> 0;

    var from = Number(arguments[1]) || 0;
    from = (from < 0) ? Math.ceil(from) : Math.floor(from);
    if (from < 0) from += len;

    for (; from < len; from++) {
      if (from in this && this[from] === elt) return from;
    }
    return -1;
  };
}
Salin selepas log masuk

Melaksanakan polyfill ini memastikan bahawa fungsi indexOf tersedia dalam versi IE yang lebih lama, membenarkan fungsi JavaScript beroperasi seperti yang dimaksudkan .

Atas ialah kandungan terperinci Mengapa indexOf tidak berfungsi dengan betul dengan Array dalam IE8?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan