Ответ 1
IE8 не поддерживает функцию обрезки. Здесь a polyfill:
if(typeof String.prototype.trim !== 'function') {
String.prototype.trim = function() {
return this.replace(/^\s+|\s+$/g, '');
};
}
Всякий раз, когда я использую функцию trim()
в строке, она отлично работает с Chrome и Firefox, но я получаю сообщение об ошибке в IE8:
Объект не поддерживает это свойство или метод
Может ли кто-нибудь сказать мне, почему это происходит, и если есть работа вокруг?
IE8 не поддерживает функцию обрезки. Здесь a polyfill:
if(typeof String.prototype.trim !== 'function') {
String.prototype.trim = function() {
return this.replace(/^\s+|\s+$/g, '');
};
}
если вы хотите добавить jquery и использовать $.trim(....), это сработает.
$.trim(" hello ");
предоставит вам
"hello"
Internet Explorer только начал поддержку trim()
с версии 9.
Для справки, MDN Polyfill для String.prototype.trim()
:
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, '');
};
})();
}
и поддержка:
+--------+---------+----+-------+--------+
| Chrome | Firefox | IE | Opera | Safari |
+--------+---------+----+-------+--------+
| All | 3.5 | 9 | 10.5 | 5 |
+--------+---------+----+-------+--------+
Так как я использовал jQuery, с помощью @nemo и @karesh-a я придумал:
if(typeof String.prototype.trim !== 'function') {
String.prototype.trim = function(){
return jQuery.trim( this );
}
}