两个问题:ie+ajax 和 ie+getElementsbyname

原文地址:http://blog.thesharpmind.com/?p=11001

 

第一个问题不能说是ie的错,只能说ie与其他浏览器的设计思路不同而已。ie追求的是大而全,ff和chrome更加具有开源软件的小而精的特点。在对于ajax的兼容上就可以看出来,ie希望代替开发者把xmlhttp请求的缓存工作给完成了,于是很多人写的ajax代码在ff可以正常运行而在ie就有问题。这主要就是ie的缓存在捣鬼。

解决办法有两个:

 

1:在AJAX请求的页面后加个随机函数,我们可以使用随机时间函数

在javascript发送的URL后加上t=Math.random()
当然,不是直接把t=Math.random()拷贝到URL后面,应该像这样:URL+"&"+"t="+Math.random();

 

  2:在XMLHttpRequest发送请求之前加上XMLHttpRequest.setRequestHeader("If-Modified-Since","0")

一般情况下,这里的XMLHttpRequest不会直接使用
你应该可以找到这样的代码
XXXXX.send(YYYYYY);
那么,就把它变成
XXXXX.setRequestHeader("If-Modified-Since","0");
XXXXX.send(YYYYYY);

 

第二个问题在我看来就是ie的失误了。根据w3c的定义,getElementsByName应该是获取匹配name属性关键字的html元素,可是“个性”的ie偏偏在这里去匹配id属性。而相反,对于getElementById ie又去匹配name。虽然这并不会带来什么技术上的障碍,但是这么做一来未被规则和常理,二来给初学者造成困难。这一点也体现了ie难伺候的特点。

 

解决办法:很简单,对每个元素均设置相同的id和name属性。(如果你还有更好的解决方法,请告诉我,不胜感谢)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值