Rumah > hujung hadapan web > tutorial js > Bagaimanakah Saya Boleh Membetulkan Isu Kaedah `indexOf` untuk Tatasusunan dalam IE8?

Bagaimanakah Saya Boleh Membetulkan Isu Kaedah `indexOf` untuk Tatasusunan dalam IE8?

DDD
Lepaskan: 2024-11-25 03:34:14
asal
645 orang telah melayarinya

How Can I Fix the `indexOf` Method Issue for Arrays in IE8?

Ie8's Missing indexOf for Arrays: A Solution

Dalam fungsi JavaScript biasa ini, penggunaan Array.prototype.indexOf dalam keadaan jika ( allowed.indexOf(ext[1]) == -1) menyebabkan masalah dalam IE8. Untuk memahami sebabnya, mari kita mendalami tingkah laku unik IE8.

IE8, tidak seperti penyemak imbas moden seperti Opera, Firefox dan Chrome, tidak mempunyai kaedah indexOf untuk tatasusunan. Peninggalan ini berpunca daripada fakta bahawa standard ECMAScript 5, yang memperkenalkan kaedah indexOf, tidak disokong oleh IE8. Akibatnya, percubaan untuk menggunakan kaedah indexOf pada tatasusunan akan mengakibatkan ralat dalam IE8.

Untuk menyelesaikan isu ini, kami boleh menggunakan strategi 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

Coretan kod ini , diperoleh daripada MDN, mentakrifkan polyfill untuk kaedah indexOf. Ia memastikan bahawa Array.prototype.indexOf tersedia dalam semua persekitaran, termasuk IE8. Dengan menambahkan kod ini sebelum menggunakan indexOf pada tatasusunan, kami boleh memastikan bahawa ia akan berfungsi dengan betul dalam semua penyemak imbas, termasuk IE8.

Dengan melaksanakan penyelesaian ini, fungsi asal akan berfungsi dengan lancar dalam IE8, membolehkan pembangun menyemak sama ada sambungan fail tertentu dibenarkan dalam fail yang dipilih pengguna.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Membetulkan Isu Kaedah `indexOf` untuk Tatasusunan 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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan