2012-04-25 15 views
1

この関数は一部のIEブラウザでは機能しますが、すべてで機能しません。 IE 8は私にエラーを与える:JavaScript .split関数がすべてのブラウザで機能しない

Webページエラーの詳細

User Agent: Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; GTB7.3; .NET CLR 1.1.4322; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET4.0C; .NET4.0E; MS-RTC LM 8) Timestamp: Wed, 25 Apr 2012 15:18:21 UTC

Message: Object doesn't support this property or method 
Line: 9 
Char: 17 
Code: 0 
URI: file:///G:/1.html 

コード:

GetLink(); 

function GetLink() { 
    selectedOption = "asdasdasd: asdasdas|asdadasd:asdadsasd|asdasdasd:asdasdad"; 
    ROOM = selectedOption.split("|")[0].trim().split(":")[1].trim(); 
    BUILDING = selectedOption.split("|")[1].trim().split(":")[1].trim(); 
    var ret = "room_chart.jsp?room=" + ROOM + "&building=" + BUILDING; 
    return ret; 
} 

答えて

6

split方法は、それが問題を引き起こしているtrimだ、大丈夫です。あなたはこの小さなpolyfill from MDNを使用することができます。

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

String.prototype.trimは、単に上記のIE < 9のコードの抜粋は使用できませんが存在しない場合String.prototypesplit方法を追加し、あなたが期待するように正確に動作しますのネイティブ実装。

jQueryを使用している場合は、$.trimメソッドを使用できます。

+0

また、これらのトリミング方法を試すこともできますが、これは潜在的に高速です:http://blog.stevenlevithan.com/archives/faster-trim-javascript – Azmisov

関連する問題