Der Internet Explorer und die indexOf()-Methode

Die Methode indexOf() für das Array-Objekt ist erst seit Ende 2009 standardisiert. Bis dahin war die Methode auch noch nicht im Internet Explorer (hier IE 8) implementiert; in fast allen anderen Browsern schon. Die Methode kann man jedoch nachträglich selbst in sein Script einfügen um, die Funktionalität auch für den Internet Explorer <= 8 zu gewährleisten.

if (!Array.prototype.indexOf) {
	Array.prototype.indexOf = function (searchElement /*, fromIndex */ ) {
		"use strict";
		if (this == null) {
			throw new TypeError();
		}
		var t = Object(this);
		var len = t.length >>> 0;
		if (len === 0) {
			return -1;
		}
		var n = 0;
		if (arguments.length > 0) {
			n = Number(arguments[1]);
			if (n != n) { // shortcut for verifying if it's NaN
				n = 0;
			} else if (n != 0 && n != Infinity && n != -Infinity) {
				n = (n > 0 || -1) * Math.floor(Math.abs(n));
			}
		}
		if (n >= len) {
			return -1;
		}
		var k = n >= 0 ? n : Math.max(len - Math.abs(n), 0);
		for (; k < len; k++) {
			if (k in t && t[k] === searchElement) {
				return k;
			}
		}
	return -1;
	}
}

(via)

Kommentar





Textile-Hilfe