文字列でこの関数を使用するtrim()
と、ChromeとFirefoxで正常に機能しますが、IE8で次のようなエラーが発生します。
オブジェクトはこのプロパティまたはメソッドをサポートしていません
なぜこれが発生するのか、回避策があるかどうかを誰かに教えてもらえますか?
文字列でこの関数を使用するtrim()
と、ChromeとFirefoxで正常に機能しますが、IE8で次のようなエラーが発生します。
オブジェクトはこのプロパティまたはメソッドをサポートしていません
なぜこれが発生するのか、回避策があるかどうかを誰かに教えてもらえますか?
IE8はトリム機能をサポートしていません。これがポリフィルです:
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からのみサポートを開始しました。
参考までに、MDNPolyfillString.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 |
+--------+---------+----+-------+--------+
それ以来、私は@nemoと@kareshの助けを借りてjQueryを使用していました-a私は思いついた:
if(typeof String.prototype.trim !== 'function') {
String.prototype.trim = function(){
return jQuery.trim( this );
}
}