JavaScript .split函数不适用于所有浏览器

And*_*rew 1 javascript

此功能适用于某些IE浏览器,但并不起作用.IE 8给了我一个错误:

网页错误详情

用户代理:Mozilla/4.0(兼容; 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)时间戳:2012年4月25日星期三15:18:21 UTC

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

码:

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;
}
Run Code Online (Sandbox Code Playgroud)

Jam*_*ice 6

split方法是好的,它trim是造成问题.您可以使用MDN的这个小填充物:

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

String.prototype.trim在IE <9中不可用.上面的代码片段只是添加了split方法,String.prototype如果它尚不存在,并且行为与您希望本机实现完全相同.

如果您使用的是jQuery,则$.trim可以使用一种方法.