如果您曾经使用JavaScript进行任何长度的工作,您都会知道Internet Explorer不会为Array.prototype.indexOf()[包括Internet Explorer 8]实现ECMAScript函数。这不是一个大问题,因为您可以使用以下代码扩展页面上的功能。
Array.prototype.indexOf = function(obj, start) { for (var i = (start || 0), j = this.length; i < j; i++) { if (this[i] === obj) { return i; } } return -1; }
我应该何时实施?
我是否应该使用以下检查将其包装在我的所有页面上,该检查将检查原型函数是否存在,如果不存在,请继续并扩展Array原型?
if (!Array.prototype.indexOf) { // Implement function here }
还是要检查浏览器,如果它是Internet Explorer,则只需实施它?
//Pseudo-code if (browser == IE Style Browser) { // Implement function here }
像这样做…
if (!Array.prototype.indexOf) { }
如MDC建议的兼容性。
通常,浏览器检测代码是很大的禁忌。