Подтвердить что ты не робот

SCRIPT438: объект не поддерживает свойство или метод "endsWith" в IE10

У меня есть функция ниже, которая отлично работает в Chrome, но она дает ниже ошибку в IE10 SCRIPT438: Object doesn't support property or method 'endsWith'

function getUrlParameter(URL, param){
    var paramTokens = URL.slice(URL.indexOf('?') + 1).split('&');
    for (var i = 0; i < paramTokens.length; i++) {
    var urlParams = paramTokens[i].split('=');
    if (urlParams[0].endsWith(param)) {
        return urlParams[1];
    }
  }
}

Может кто-нибудь сказать мне, что случилось с этой функцией?

4b9b3361

Ответ 1

Реализовано endsWith, как показано ниже

String.prototype.endsWith = function(pattern) {
  var d = this.length - pattern.length;
  return d >= 0 && this.lastIndexOf(pattern) === d;
};

Ответ 2

Вы должны использовать следующий код для реализации endsWith в браузерах, которые его не поддерживают:

if (!String.prototype.endsWith) {
  String.prototype.endsWith = function(searchString, position) {
      var subjectString = this.toString();
      if (typeof position !== 'number' || !isFinite(position) || Math.floor(position) !== position || position > subjectString.length) {
        position = subjectString.length;
      }
      position -= searchString.length;
      var lastIndex = subjectString.lastIndexOf(searchString, position);
      return lastIndex !== -1 && lastIndex === position;
  };
}

Это прямо из Mozilla Developer Network и соответствует стандарту, в отличие от другого ответа, предоставленного до сих пор.