当前位置:首页 » 网站技术 » JavaScript

jQuery实现Ajax在IE运行依赖ActiveX控件

...

jQuery实现Ajax时,在IE6中运行时创建XMLHttpRequest对象时是使用ActiveX方法,jQuery1.3.2创建XMLHttpRequest对象的代码片断如下:

xhr:function(){
return window.ActiveXObject ? new ActiveXObject("Microsoft.XMLHTTP") : new XMLHttpRequest();
},

如上面代码所示,IE中通过new ActiveXObject("Microsoft.XMLHTTP")创建XMLHttpRequest对象,而XMLHttpRequest是实现Ajax的核心对象。假如我在IE中禁用ActiveX控件,会导致创建XMLHttpRequest对象失败,结果运行出现错误,造成很多麻烦。

先不讨论复杂的Ajax应用,就jQuery的弹出层插件Thickbox和Facebox当在弹出层打开一个网页链接时,要取得链接指向页面的内容,也要用到简单Ajax功能,在Thickbox中用load方法,而Facebox中使用$.get方法来获得远程页面内容。

假如访客的IE中禁用ActiveX控件,那么实现友好的用户体验就不可能,当然不能弹出层,但会直接转入到链接页面。

虽然IE7的实现方式已经改变,但IE6还是要考虑的浏览器版本之一,不过搜索过不少资料,好像在IE6中除了ActiveX控件方式,没有其他方式可以创建XMLHttpRequest对象了,最理想的状态是都能用new XMLHttpRequest()方式创建对象。

浏览器兼容编程和设计造成了社会财富的大量损失,宝贵时间都花费在了这无意义的事情上,如果早统一,或者微软不要自以为是,今天就不会出现这种情况了。

继续阅读
微软下一代操作系统正式命名Windows 7
Linux基金会任命新任CTO 争取获得重大突破
6行代码实现ASP无组件上传
谷歌出现人为故障 误报所有网站为恶意站点
Ajax框架jQuery发布1.3新版 改进核心代码
Opera推出了新的JavaScript引擎Carakan
.Net开发中几个重要的认识误区
新能源成为硅谷投资热点 硅谷变绿
IE8的强大JavaScript功能探秘
发表评论

昵称:
最新评论
暂时没有评论!