11月 19th, 2006 in Experience, Web
你正在浏览一篇我早期写的文章,风格和现在差异较大,很多文章观点我现在也可能不赞同。开始考古!
最近分享哈工大在进行核心升级.想用AJAX实现某些效果,采用了xajax作框架.
但是在使用innerHTML插入文字的时候,在IE下总会出现这样的错误:

其实是因为在IE下,xmlhttp对象尚未载入完全的时候就调用它,而产生的错误,该问题仅在IE下发现(也算是IE的一个bug吧)。解决方式是改写了xajax的调用程序的函数,等到IE把xmlhttp对象加载完之后再进行调用。
不过这样就导致一个新的状况,也就是IE下页面会要等到所有的东西都下载完了,以后才会显示出帖子的回复数。Firefox/Opera至始至终都没有这个问题。
最根本的解决方式就是覆写 xajax.call 函式,等到 IE 把 DOM 载入完之后再进行处理。
xajax.realCall = xajax.call;
xajax.call = function(sFunction, aArgs, sRequestType) {
var browser=navigator.appName;
if (browser == “Microsoft Internet Explorer” && document.readyState != “complete”) {
window.setTimeout (function () { xajax.call(sFunction, aArgs, sRequestType); }, 100);
return false;
}
return this.realCall(sFunction, aArgs, sRequestType);
}
上述解决方法来自2simple与Neo’s Blog
改正中…
trackback
Tags: ajax xajax 分享哈工大 相关Tags:
美法院裁定网络转发内容不需承担法律责任 » « 选举、人民民主专政
相关文章