在javascript中显示未知名称时出错

时间:2011-02-17 13:09:42

标签: javascript ajax internet-explorer-6

我从下拉框中选择一个选项,调用onchange功能 功能 的 retrieveurl(URL,formbean的);代码编写。

它调用用javascript编写的ajax,它无法检测我的浏览器版本,即IE6.0.2900 ....

以下代码我用过......

try {

  req = new ActiveXObject("Msxml2.XMLHTTP");

} catch (e) {

   try {

      req = new ActiveXObject("Microsoft.XMLHTTP");

   } catch {

       alert('second catch');
   }

}

我调试它来到第二个捕获警报

任何人都可以帮我吗?

2 个答案:

答案 0 :(得分:1)

在第二个catch语句中错过了catch * (e) *

try
{
    req = new ActiveXObject("Msxml2.XMLHTTP");
}

catch(e)
{
    try
    {
        req = new ActiveXObject("Microsoft.XMLHTTP");
    }

    catch(e)
    {
        alert('second catch');
    }
}

<强>更新 我还建议使用所有版本的MS XML HTTP对象

function getHTTPRequest () 
{
    var xmlHttp;
    try 
    {
        // Firefox, Chrome, Opera, IE 8
        xmlHttp = new XMLHttpRequest();
    } 
    catch (err) 
    {
        // IE and possible XML HTTP ProIDs
        var XmlHttpVersions = new Array(
                            "Msxml2.XMLHTTP.7.0",
                            "Msxml2.XMLHTTP.6.0",
                            "Msxml2.XMLHTTP.5.0",
                            "Msxml2.XMLHTTP.4.0",
                            "MSXML2.XMLHTTP.3.0",
                            "MSXML2.XMLHTTP",
                            "Microsoft.XMLHTTP"
                            );
        for (var i=0; i<XmlHttpVersions.length && !xmlHttp; i++) 
        {
            try 
            {
                xmlHttp = new ActiveXObject(XmlHttpVersions[i]);
            }
            catch(err) {} //Ignore


        }        
    }

    if(!xmlHttp) 
    {
        alert("No HttpRequest supported");
    }
    else 
    {
        return xmlHttp;
    }
}

var xhr = getHTTPRequest();

答案 1 :(得分:1)

据我所知,这应该适用于IE6。但你错过了第二次捕获中的(e)参数,可能应该存在。也许这搞砸了?对不起,我无法检查,没有IE6。