2012-06-27 16 views
28
Ben bir ipe trim() fonksiyonunu her kullandığınızda

, bu Chrome ve Firefox ile çalışıyor ancak söyleyerek IE8'de bir hata alıyorum:trim() işlevi IE8'de çalışmıyor mu?

Nesne

Can bu özelliği veya yöntemi desteklemiyor kimse bana bunun neden olduğunu ve etrafta bir iş olup olmadığını söyler mi?

+0

http://stackoverflow.com/questions/2308134/trim-in-javascript-not-:, ben @nemo ve @ Karesh-a yardımıyla, jQuery kullanıyordum beri ben ile geldi çalışma-in-ie – ShaggyInjun

+1

Basit, IE8 bunu desteklemiyor: http://kangax.github.com/es5-compat-table/ – elclanrs

+0

Bu bağlantı bu hata için yararlıdır. [http://stackoverflow.com/questions/2308134/trim-in-javascript-not-working-in-ie][1] [1]: http: // stackoverflow. com/questions/2308134/trim-in-javascript-not-working-in-ie –

cevap

82

IE8 Döşeme desteklemiyor işlevi. İşte polyfill var: Sadece referans için sürümüne 9.

den trim() desteği başladı

if(typeof String.prototype.trim !== 'function') { 
    String.prototype.trim = function() { 
    return this.replace(/^\s+|\s+$/g, ''); 
    }; 
} 
+0

Bu kod parçacığının ne yaptığını açıklayabilir misiniz ?, esas olarak, bu ifadenin ne hakkında olduğu. – dwjohnston

+3

Bu snippet, önce trim işlevinin tanımlanıp tanımlanmadığını denetler (tip.detail.prototype.trim! == 'function') Tanımlanmamışsa, normal bir ifadeyle – nemo

+1

http: // ifadesini içeren basit bir işlev olan işlevi tanımlar. stackoverflow.com/a/2308157/1958835 – Igorovics

38

$.trim(" hello "); 

size vermek size .. Eğer jquery ekleyip bu çalışacaktır $ .trim (....) kullanabilir isterseniz

"hello" 
+2

Bu yanıt için teşekkürler - jQuery'yi zaten kullanan siteler için tercih edilir. – rcourtna

+0

Teşekkürler Karesh, jQuery.trim() IE'de benim için çalıştı. – Muk

+1

Suç yok, ama bence bu sadece javascript kullanıyorken yapılmalı. Siteye sadece bir işlev için jquery ekleyerek diğer bilge iyi görünmüyor. Yukarıdaki çözüm daha zarif görünüyor. –

2

Internet Explorer, MDN Polyfill for String.prototype.trim() geçerli:

if (!String.prototype.trim) { 
    (function() { 
    // Make sure we trim BOM and NBSP 
    var rtrim = /^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g; 
    String.prototype.trim = function() { 
     return this.replace(rtrim, ''); 
    }; 
    })(); 
} 

ve bunun için support geçerli:

+--------+---------+----+-------+--------+ 
| Chrome | Firefox | IE | Opera | Safari | 
+--------+---------+----+-------+--------+ 
| All | 3.5  | 9 | 10.5 |  5 | 
+--------+---------+----+-------+--------+ 
0
if(typeof String.prototype.trim !== 'function') { 
    String.prototype.trim = function(){ 
     return jQuery.trim(this); 
    } 
}