首页 新闻 论坛 群组 Blog 文档 下载 读书 Tag 网摘 搜索 .NET Java 游戏 视频 人才 外包 培训 数据库 书店 程序员
中国软件网
欢迎您:游客 | 登录 注册 帮助
  • 在Firefox不支持,有没有解决办法 [已结贴,结贴人:ly8199]
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • ly8199
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    • 揭贴率:
    发表于:2008-08-21 10:43:54 楼主
    以下代码在IE执行正常,在FIREFOX不支持。。有什么方法可以支持吗?


    1.asp
    ----------------------------------------------------------------
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
    <title>测试 </title>
    <script language="JavaScript" src="returnhtm.js" type="text/javascript"> </script>
    </head>

    <body>
    <div id="temp">abc </div>
    <script>
    getshow('2.asp','temp');
    </script>

    </body>
    </html>
    ----------------------------------------------------------------

    returnhtm.js
    ----------------------------------------------------------------
    var filesadded = ""
    //创建XMLHttpRequest对象
    var http = window.ActiveXObject ? new ActiveXObject("Microsoft.XMLHTTP") : new XMLHttpRequest();

    function getshow(url,div_name){
    document.getElementById(div_name).innerHTML=" <img src=images/loading.gif />载入数据中......";
    http.open("GET",url,false);
    http.onreadystatechange=function(){gethandleHttpResponse(div_name)};
    http.setRequestHeader("Content-Type","text/html;encoding=GB2312");
    http.send(null);
    return;
    }

    function postshow(url,div_name,parameter){
    document.getElementById(div_name).innerHTML=" <img src=images/loading.gif />载入数据中......";
    http.open("POST",url,false);
    http.onreadystatechange=function(){gethandleHttpResponse(div_name)};
    http.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
    http.send(parameter);
    return;
    }

    function gethandleHttpResponse(div_name){
    if(http.readyState==4){
    if(http.status==200){
    if(http.responseText!=""){
    htmlText=http.responseText;
    var DomJs=htmlText.match(/ <load-js>[\s\S]+? <\/load-js>/g);//获取载入JS文件
    var DomCss=htmlText.match(/ <load-css>[\s\S]+? <\/load-css>/g);//获取载入CSS文件
    var DomScript=htmlText.match(/ <load-script>[\s\S]+? <\/load-script>/g);//获取载入函数
    var MyScript=htmlText.match(/ <run-script>[\s\S]+? <\/run-script>/g);//获取执行语句
    htmlText=htmlText.replace(/ <load-js>[\s\S]+? <\/load-js>/g,"")//删除载入JS文件文本
    htmlText=htmlText.replace(/ <load-css>[\s\S]+? <\/load-css>/g,"")//删除载入CSS文件文本
    htmlText=htmlText.replace(/ <load-script>[\s\S]+? <\/load-script>/g,"")//删除载入函数文本
    htmlText=htmlText.replace(/ <run-script>[\s\S]+? <\/run-script>/g,"")//删除执行语句文本
    document.getElementById(div_name).innerHTML=htmlText;//输出文本

    //载入JS文件,以 <load-js>开头 </load-js>结束
    if(DomJs!=null){
    for(i=0;i <DomJs.length;i++){
    DomJs[i]=DomJs[i].replace(/ <load-js>/g,"");
    DomJs[i]=DomJs[i].replace(/ <\/load-js>/g,"");

    if (filesadded.indexOf("["+DomJs[i]+"]")==-1){
    var headerDom=document.getElementsByTagName('head')[0];
    var jsDom=document.createElement('script');
    jsDom.setAttribute("type","text/javascript");
    jsDom.setAttribute("src",DomJs[i]);
    headerDom.appendChild(jsDom);
    filesadded += "["+DomJs[i]+"]";
    }
    }
    }
    //载入CSS文件,以 <load-css>开头 </load-css>结束
    if(DomCss!=null){
    for(i=0;i <DomCss.length;i++){
    DomCss[i]=DomCss[i].replace(/ <load-css>/g,"");
    DomCss[i]=DomCss[i].replace(/ <\/load-css>/g,"");

    if (filesadded.indexOf("["+DomCss[i]+"]")==-1){
    var headerDom=document.getElementsByTagName('head')[0];
    var jsDom=document.createElement('link');
    jsDom.setAttribute("rel", "stylesheet");
    jsDom.setAttribute("type","text/javascript");
    jsDom.setAttribute("href",DomCss[i]);
    headerDom.appendChild(jsDom);
    filesadded += "["+DomCss[i]+"]";
    }
    }
    }
    //载入JS函数,以 <load-script>开头 </load-script>结束
    if(DomScript!=null){
    for(i=0;i <DomScript.length;i++){
    DomScript[i]=DomScript[i].replace(/ <load-script>/g,"");
    DomScript[i]=DomScript[i].replace(/ <\/load-script>/g,"");

    var headerDom=document.getElementsByTagName('head').item(0);
    var jsDom=document.createElement('script');
    jsDom.type='text/javascript';
    jsDom.language='javascript';
    jsDom.defer=true;
    jsDom.text=DomScript[i];
    headerDom.appendChild(jsDom);
    }
    }
    //执行JS,以 <run-script>开头 </run-script>结束
    if(MyScript!=null){
    for(i=0;i <MyScript.length;i++){
    MyScript[i]=MyScript[i].replace(/ <run-script>/g,"");
    MyScript[i]=MyScript[i].replace(/ <\/run-script>/g,"");
    eval(MyScript[i]);
    }
    }
    }
    }else{document.getElementById(div_name).innerHTML="你所请求的页面发生异常,可能会影响你浏览该页的信息!"+http.status;}
    }
    }
    ----------------------------------------------------------------

    2.asp
    ----------------------------------------------------------------
    111111111111111111111111
    ----------------------------------------------------------------
    200  修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • changke18
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-08-21 10:50:291楼 得分:10
    FF和IE在dom操作时会有细微差别
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • yxlsd
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-08-21 10:54:552楼 得分:10
    错误信息是什么
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • xumv_com
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-08-21 11:06:433楼 得分:10
    jsDom.setAttribute("rel", "stylesheet");
    好象只有ie支持
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • ly8199
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-08-21 11:29:074楼 得分:0
    <div id="temp">abc </div>

    执行后的效果

    IE下是 <div id="temp">111111111111111111111111 </div>

    FF下是 <div id="temp"> <img src=images/loading.gif />载入数据中...... </div>


    要怎么改才能让FF实现IE下显示的效果?
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • iuhxq
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-08-21 13:38:255楼 得分:170
    function $(o){return document.getElementById(o);}

    function XHConn()
    {
      var xmlhttp, bComplete = false;
      try { xmlhttp = new ActiveXObject("Msxml2.XMLHTTP"); }
      catch (e) { try { xmlhttp = new ActiveXObject("Microsoft.XMLHTTP"); }
      catch (e) { try { xmlhttp = new XMLHttpRequest(); }
      catch (e) { xmlhttp = false; }}}
      if (!xmlhttp) return null;
      this.connect = function(sURL, sMethod, sVars, fnDone)
      {
        if (!xmlhttp) return false;
        bComplete = false;
        sMethod = sMethod.toUpperCase();

        try {
          if (sMethod == "GET")
          {
            xmlhttp.open(sMethod, sURL+"?"+sVars, true);
            sVars = "";
          }
          else
          {
            xmlhttp.open(sMethod, sURL, true);
            xmlhttp.setRequestHeader("Method", "POST "+sURL+" HTTP/1.1");
            xmlhttp.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
          }
          xmlhttp.onreadystatechange = function(){
            if (xmlhttp.readyState == 4 && xmlhttp.status == 200 && !bComplete)
            {
              bComplete = true;
              fnDone(xmlhttp);
            }};
          xmlhttp.send(sVars);
        }
        catch(z) { return false; }
        return true;
      };
      return this;
    }

    function Update(element, url, method, data, call)
    {
        var xh = new XHConn();
        xh.connect(url, method, data, function(o){$(element).innerHTML = o.responseText;call();});
    }

    Update('temp', '2.asp', 'GET', '', null);
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • ly8199
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-08-21 14:13:326楼 得分:0
    引用 5 楼 iuhxq 的回复:
    function $(o){return document.getElementById(o);}

    function XHConn()
    {
      var xmlhttp, bComplete = false;
      try { xmlhttp = new ActiveXObject("Msxml2.XMLHTTP"); }
      catch (e) { try { xmlhttp = new ActiveXObject("Microsoft.XMLHTTP"); }
      catch (e) { try { xmlhttp = new XMLHttpRequest(); }
      catch (e) { xmlhttp = false; }}}
      if (!xmlhttp) return null;
      this.connect = function(s…


    能不能把我上面的代码修改一下。。。
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • iuhxq
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-08-21 14:50:417楼 得分:0
    你的代码太多了,还是用我给你的简洁
    修改 删除 举报 引用 回复

    网站简介广告服务网站地图帮助联系方式诚聘英才English 问题报告
    北京创新乐知广告有限公司 版权所有 京 ICP 证 070598 号
    世纪乐知(北京)网络技术有限公司 提供技术支持
    Copyright © 2000-2008, CSDN.NET, All Rights Reserved