反向Ajax responseText检测

时间:2011-01-18 18:16:39

标签: 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;

但我真的不想做浏览器检测,有没有办法检测context.responseText是否不可用?特别是对于IE7 / 8,我不支持6或更低版本。

我试过了,

if('responseText' in context) return false;

不起作用,因为它在上下文中,只是不可用,

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

但这似乎是一个黑客。

1 个答案:

答案 0 :(得分:0)

Context不会初始化响应对象是否为text,xml。因此,除非你为响应的实际创建/初始化/填充实现某种观察者,否则第二次尝试... catch似乎做你需要它做的事情。这不是一个黑客,因为context.responseText没有创建,因此未初始化。

我将继续监控这个帖子,但我认为恕我直言你的方法是合适的。

祝你好运,

约什