xycshh 2010-01-22 14:25
浏览 146
已采纳

火狐浏览器

写了段2级联动菜单,在IE中测试没有问题,在火狐中测试出错,如果连接请求是true根本得不到值,如果改成false就下来菜单就变成undefine,debug也没有出现报错信息,代码如下:

function chang1(){ var url="<%=request.getContextPath()%>/loadmessage1.action"; send_request1(url); } var http_request = false; function createXMLHttpRequest(){ if(window.ActiveXObject){ http_request=new ActiveXObject("Microsoft.XMLHTTP"); }else if(window.XMLHttpRequest){ http_request=new XMLHttpRequest(); } } function send_request1(url){ createXMLHttpRequest(); http_request.onreadystatechange=processRequest1; http_request.open("POST", url,true); http_request.send(null); } // 处理返回信息的函数 function processRequest1(){ if (http_request.readyState == 4) { // 判断对象状态 if (http_request.status == 200||http_request.status==0) { // 信息已经成功返回,开始处理信息 updateselect1(); } } } function updateselect1(){ document.f.cgy.length = 0; document.f.cgy.options[0] = new Option('==请选择=='); var doc = http_request.responseXML; var items=doc.getElementsByTagName('cgy2'); var i=0; for(i;i<items.length;i++) { document.f.cgy.options.add(new Option(items[i].text)); } } }


  • 写回答

5条回答 默认 最新

  • wanghaolovezlq 2010-01-22 15:07
    关注

    修改这个方法
    function send_request1(url){
    createXMLHttpRequest();
    http_request.onreadystatechange=processRequest1;
    http_request.open("POST", url,true);
    http_request.send(null);
    }

    修改成

    [code="java"]
    //加上这个方法
    function getOs()

    {

    var OsObject = "";

    if(navigator.userAgent.indexOf("MSIE")>0) {

    return "MSIE"; //IE浏览器
    }
    if(isFirefox=navigator.userAgent.indexOf("Firefox")>0){

    return "Firefox"; //Firefox浏览器
    }
    if(isSafari=navigator.userAgent.indexOf("Safari")>0) {

    return "Safari"; //Safan浏览器
    }
    if(isCamino=navigator.userAgent.indexOf("Camino")>0){

    return "Camino"; //Camino浏览器
    }
    if(isMozilla=navigator.userAgent.indexOf("Gecko/")>0){

    return "Gecko"; //Gecko浏览器
    }

    }
    function send_request1(url){
    createXMLHttpRequest();
    var btype=getOs();
    http_request.onreadystatechange = (btype!="Firefox")?(processRequest1):(processRequest1());
    http_request.open ("POST",url,true);
    http_request.send(null);
    http_request.onreadystatechange = (btype!="Firefox")?(processRequest1):(processRequest1());

    } 
    

    [/code]

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(4条)

报告相同问题?

悬赏问题

  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置
  • ¥15 有没有研究水声通信方面的帮我改俩matlab代码
  • ¥15 对于相关问题的求解与代码
  • ¥15 ubuntu子系统密码忘记
  • ¥15 信号傅里叶变换在matlab上遇到的小问题请求帮助
  • ¥15 保护模式-系统加载-段寄存器
  • ¥15 电脑桌面设定一个区域禁止鼠标操作
  • ¥15 求NPF226060磁芯的详细资料