galio浏览器的毛病

折腾了两天,终于找到原因了,不同浏览器之间的兼容性真是令人头痛的问题。

 

本来是想从page1.html页面将显示内容传递到page2.html页面,用js接受后显示在页面上,如果用英文一切ok,内容如下:

 

page1.html(gb2312)

	function test() {
		var code = "00:00$午夜新闻%00:30$新闻1+1:时事开讲";
		//var code = "sgsgd$sgd%fgsdg$fldg";
		window.location = "page2.html?"+code;
	}
 

page2.html(gb2312)

	        var prog_link =  location.search.substring(1);
		 var array_code = prog_link.split("%");
		 var word = "";
		 for(var i = 0; i < array_code.length; i++) {
			word += array_code[i];
		 }
		 document.getElementById("id2").innerHTML = word;

 

但一换成中文就报错,于是google js编解码,说链接里不能直接传递中文,于是用 escape  encodeURI  encodeURIComponent 统统折腾一遍,还是不行。于是又想到可能是页面编码不对,于是把导入的js文件全改成直接写到页面里,还是不行。

后来无意中把测试数据改了改,居然好了,于是弹出数组的长度,发现是分割函数出了问题,分割后的数组长度为1(在IE下是2),根本没有分割开来。进一步测试,发现如果把测试数据放在page2.html文件里,ie和galio都可以分割成功,但如果是从page1.html传递过来的数据,galio分割会出问题。只要是%后面接两个以上的数字galio就无法用%来分隔字符串(IE正常)。

 

baidu到split方法:

 

 写道
stringObj.split([separator[, limit]])

参数 separator
可选项。字符串或 正则表达式 对象,它标识了分隔字符串时使用的是一个还是多个字符。如果忽略该选项,返回包含整个字符串的单一元素数组。

 

和java一样,js的split方法的参数也可以是正则表达式,于是找了一下正则的特殊字符,

http://blog.csdn.net/laily/archive/2004/06/30/30517.aspx

发现%并没有特殊的含义,这就非常奇怪了,不知道galio这里为什么要这样处理。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值