2015-04-03 15 views
13

yılında özelliği veya yöntemi 'endswith' desteklemediği Chrome'da çalışıyor ama onun SCRIPT438: Object doesn't support property or method 'endsWith'SCRIPT438: Nesne IE10

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]; 
    } 
    } 
} 

birisi neyin söyleyebilir IE10 aşağıda hatayı veren aşağıda fonksiyonu var Bu işlevin yanlış?

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

Destek tablosunu okuyun: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/endsWith – epascarello

+1

'endsWith 'yalnızca IE10 tarafından desteklenmiyor. –

+0

@FelixKling IE10'da nasıl çalışırım? – RanPaul

cevap

31

Uygulanan endsWith bu kadar desteklemez:

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; 
    }; 
} 

Bu Mozilla Developer Network doğrudan ve standartlara uygun olduğunu , şu ana kadar verilen diğer cevapların aksine.

+7

"if (! String.prototype" ile sarın. biter "ve" ile "bittiği" ek bir argüman alır, "pozisyon" "İsteğe bağlı. Bu dizgede sadece bu kadar uzun sanki, bu dizginin gerçek uzunluğunun varsayılan değeri, bu dizginin uzunluğu tarafından belirlenen aralık içinde kenetlenmiş olarak arama. " –

+1

Günümü kurtardım. Bir lütfu hak ediyorsun. –

+0

Günümü kurtardı !!! –

11

Sen tarayıcılarda endsWith uygulamak için aşağıdaki kodu kullanmalısınız aşağıdaki gibi

İlgili konular