Javascript 反向Ajax响应文本检测

Javascript 反向Ajax响应文本检测,javascript,ajax,internet-explorer-8,internet-explorer-7,comet,Javascript,Ajax,Internet Explorer 8,Internet Explorer 7,Comet,当ajax请求readyState==3时调用此函数 function(context, xhrobj, itself){ //Test if context.responseText is available here. var text = context.responseText; //Do stuff } 如何测试context.responseText是否可用?我现在在做这个, if ($.browser.msie) return false; 但是我真的

当ajax请求readyState==3时调用此函数

function(context, xhrobj, itself){
    //Test if context.responseText is available here.

    var text = context.responseText;
    //Do stuff
}
如何测试context.responseText是否可用?我现在在做这个,

if ($.browser.msie) return false;
但是我真的不想做浏览器检测,有没有办法检测context.responseText是否不可用?特别是对于IE7/8,我不支持6或以下版本

我试过了

if('responseText' in context) return false;
这不起作用,因为它在上下文中,只是不可用,而且

try{context.responseText;} catch(x){return false;}

但是这看起来像是一种黑客行为。

上下文不会初始化响应对象,不管是文本还是xml。因此,除非您为响应的实际创建/初始化/填充实现某种观察器,否则第二次尝试…catch似乎完成了您需要它完成的任务。它不是黑客攻击,因为context.responseText未创建,因此未初始化

我将继续监视这个线程,但我认为您的方法是合适的

祝你好运


Josh

我只想用你列出的最后一个
try/catch
。当然,这看起来像是黑客攻击,但浏览器有时会强迫你这么做。而且,如果我没记错的话,
readyState==3
可以被多次调用。你为什么不等到4点呢?这是comet,我正在推json,但没有关闭连接,所以我可以在重置连接之前多次将数据推回到浏览器中。
try/catch
的方式对我来说并不是那么老套(我不是这方面的权威)。。。我认为这是一个很好的解决问题的方法,我称之为hack,因为我不相信在正常的程序流中使用catch语句,但这只是语义。由于我是一名新的js开发人员,我希望有其他更干净的方法来检测IE的可怕性:),谢谢你的肯定。