简体   繁体   中英

JavaScript .split function does not work in all browsers

This function works in some IE browsers, but does not work in all. IE 8 gives me an error:

Webpage error details

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

Code:

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

The split method is fine, it's trim that's causing the problem. You can use this little polyfill from MDN :

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

String.prototype.trim is not available in IE < 9. The snippet of code above simply adds the split method to String.prototype if it doesn't already exist, and behaves exactly as you would expect the native implementation to.

If you are using jQuery, there is a $.trim method you can use.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM