zoukankan      html  css  js  c++  java
  • 通过 ajax 将多个页面集中一个页面显示

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>统一平台</title>
    <link type="text/css" href="/css/redmond/ui.all.css" rel="stylesheet" />
    <link href="/css/css.css" rel="stylesheet" type="text/css" />
    </head>

    <body style="padding:20px">
    <div id="test1"></div><br />
    <div id="test"></div>


    </body>
    </html>
    <script type="text/javascript" src="/js/jquery-1.3.2.min.js"></script>
    <script type="text/javascript">

    var baseUrl 
    = "";

    var divObj 
    = new Object();

    divObj.url 
    = new Array();
    //divObj.url.push("/index.php/Service/Salaallot");
    divObj.url.push("/index.php/Service/Fault");
    divObj.url.push(
    "/index.php/Service/Salashelve");
    divObj.url.push(
    "/index.php/Service/Sbch");
    divObj.url.push(
    "/index.php/Service/Servicesend");

    divObj.name 
    = new Array();
    //divObj.name.push("分配资源");
    divObj.name.push("故障工单");
    divObj.name.push(
    "上架工单");
    divObj.name.push(
    "变更工单");
    divObj.name.push(
    "退机工单");


    //创建DIV,DIV1....DIV5
    var ajax = createAjax();
    ajax.url 
    = [];
    ajax.divID 
    = [];
    for(var i=0;i<divObj.url.length;i++)
    {
        var bDiv 
    = document.createElement("div");
        bDiv.setAttribute(
    "id","div_" + i.toString());
        
    if(![-1,])
            bDiv.setAttribute(
    "cssText","98%;height:15%;float:left;");
        
    else
            bDiv.setAttribute(
    "style","98%;height:15%;float:left;");
        document.body.appendChild(bDiv);
        
        var tDiv 
    = document.createElement("div");
        tDiv.setAttribute(
    "id","div_" + i.toString() + "_t");
        
    if(![-1,])
            bDiv.setAttribute(
    "cssText","100%;height:20%;float:left;");
        
    else
            bDiv.setAttribute(
    "style","100%;height:20%;float:left;");    
        bDiv.appendChild(tDiv);
        tDiv.innerHTML 
    = "<b><a target='_blank' href='"+ divObj.url[i] +"'>" + divObj.name[i] + "</a></b>";
        
        var fDiv 
    = document.createElement("div");
        fDiv.setAttribute(
    "id","div_" + i.toString() + "_f");
        
    if(![-1,])
            bDiv.setAttribute(
    "cssText","98%;height:80%;float:left;");
        
    else
            bDiv.setAttribute(
    "style","98%;height:80%;float:left;");    
        bDiv.appendChild(fDiv);    
        
        ajax.url.push( baseUrl 
    + divObj.url[i] );
        ajax.divID.push( 
    "div_" + i.toString() + "_f" );
        
        ajaxExec.call(ajax,handleFunc,divObj.url.length);
        
    }


    function handleFunc()
    {
        var flag 
    = false
        var data 
    = html2node(this.request.responseText);
        
    for (var i=0;i<data.childNodes.length;i++)
        {
            
    if(data.childNodes[i].nodeName=="#text"continue;
            
    if (this.ajaxID!==0)
            {
                
    if (data.childNodes[i].nodeName==="TABLE")
                {
                    handleFuncMain(data,i,
    this,1);
                    
    break;
                }
            }
    else{
                
    if (data.childNodes[i].nodeName==="DIV")
                {
                    var table 
    = data.childNodes[i].getElementsByTagName("table");
                    handleFuncMain(data,i,
    this,table[1]);
                    
    break;
                }            
            }
        }
    }


    function handleFuncMain(data,i,obj,value)
    {
        
    if (value==1)
        {
            var tr 
    = data.childNodes[i].getElementsByTagName("tr");
            var htmlObj 
    = data.childNodes[i];
        }
    else{
            var htmlObj 
    = !-[1,] ? value : value.childNodes[1];
            var tr 
    = htmlObj.getElementsByTagName("tr");
        }
        var trLength 
    = tr.length,newTrLength = tr.length;
        
    for(var k=trLength.length;newTrLength>4;k++)
        {
            htmlObj.deleteRow(newTrLength
    -1);
            newTrLength 
    = newTrLength - 1;
        }
        var a 
    = htmlObj.getElementsByTagName("a");
        
    for (var j=0;j<a.length;j++)
        {
            
    if (!a[j].getAttribute("onclick"&& a[j].getAttribute("href").indexOf("javascript")==-1)
                a[j].setAttribute(
    "target","_blank");
        }
        document.getElementById(obj.divID[obj.ajaxID]).innerHTML 
    = "<table cellspacing=\"1\" cellpadding=\"0\" class=\"table01\">" + htmlObj.innerHTML + "</table><br />";
    }


    /************************************************************************
     *  作用 : 控制 ajax 异步程序按顺序执行
     *  例子 : ajaxExec.call(ajax,handleFunc,divObj.url.length);
     *  参数1: ajax 对象
     *  参数2: onreadystatechange 事件触发事件
     *  参数3: 需多次执行的次数或是重新执行异步程序的标识
     **********************************************************************
    */
    function ajaxExec()
    {    
        var _this 
    = this;
        var _handleFunc 
    = arguments[0];
        
    if (arguments.length==2)
        {
            
    if (typeof(arguments[1])==="number")
            {
                
    this.ajaxIDLength = arguments[1];
            }
    else if (arguments[1]==="afresh"){
                
    this.ajaxID = 0;
                
    this.first = undefined;
            }
        }
        
        
    if (this.first==undefined)
        {
            
    this.first = true;
            
    this.ajaxID = 0;
            
    this.request.open("GET"this.url[0], true);
            
    this.request.onreadystatechange = function(){
                ajaxExec.call(_this,_handleFunc);
            };
            
    this.request.send(null);
        }
    else{
            
    if (this.ajaxIDLength!=this.url.length)
                
    return;
            
    this.first = false;
            
    if (this.request.readyState == 4)
            {
                
    if (this.request.status == 200)
                {
                    _handleFunc.call(
    this);
                }
                
    if (this.ajaxID===this.url.length-1)
                    
    return;
                    
                
    this.ajaxID = this.ajaxID + 1;
                
    this.request.open("GET"this.url[this.ajaxID], true);

                
    this.request.onreadystatechange = function(){
                    ajaxExec.call(_this,_handleFunc);
                };
                
    this.request.send(null);
            }
            
        }

    }


    function createAjax()
    {
        var request ;
        
    try
        {
            request 
    = new XMLHttpRequest();
        }
    catch(err){
            
    try
            {
                request 
    = new ActiveXObject("Microsoft.XMLHTTP");
            }
    catch(error){
                request 
    = new ActiveXObject("Msxml2.XMLHTTP");
            }    
        }
        
    if(!request)
        {
            alert(
    "createAjax Error!");
        }
    else{
            
    this.request = request;
            
    return this;    
        }
    }

    function html2node(s) {
        var d 
    = document.createElement('div');
        d.innerHTML 
    = s;
        
    if (d.childNodes.length == 1)
            
    return d.childNodes[0];
        var df 
    = document.createDocumentFragment();
        
    while (d.firstChild)
            df.appendChild(d.firstChild);
        
    return df;
    }

    function accept(flt_id,fd_id){
        var s
    =confirm("确认接单?");
        
    if(s==true){
            window.location.href
    ='/index.php/service/fault/dealFault?act=accept&flt_id='+flt_id+'&fd_id='+fd_id;
        }
    else{
            
    return;
        }
    }

    function handle(id)
    {
        
    if( confirm("你确定要受理?") )
        {
            var url 
    = '/index.php/service/sbch/oinsert/id/' + id;
            $.ajax({
               type: 
    "GET",
               url: url,
               success: function(data){
                 
    if(data!=0 && data!=-1)
                 {
                    $(
    "#a_" + id).html("处理中");
                    $(
    "#a_" + id).attr("href","/index.php/service/sbch/form/id/" + id);
                    $(
    "#a_" + id + "_2").empty(); 
                    var td 
    = $("#tr_" + id + " td");
                    td.eq(
    6).html("处理中");
                    td.eq(
    7).html(data);
                    window.location.href 
    = "/index.php/service/sbch/form/id/" + id;
                 }
    else if(data==0){
                    alert(
    '请登录再进行操作!'); 
                 }
    else{
                    alert(
    '程序出错!'); 
                 }
               }
            });         
            
        }
    }



    String.prototype.trim 
    = function() {
        var str 
    = this,
        str 
    = str.replace(/^\\s\\s*/''),
        ws 
    = /\\s/,
        i 
    = str.length;
        
    while (ws.test(str.charAt(--i)));
        
    return str.slice(0, i + 1);
    }

    setInterval(
        function(){
            ajaxExec.call(ajax,handleFunc,
    "afresh");
        },
    10000
    );

    </script>
  • 相关阅读:
    (转)当别人努力的时候,你在做什么?
    《IT项目管理》读书笔记(9) —— 项目风险管理
    线程通信机制之定时器队列
    处理控制台事件消息
    C++常见内存错误及解决方案
    WCF与现行分布式通讯技术性能对比
    (译)如何使用SocketAsyncEventArgs类(How to use the SocketAsyncEventArgs class)
    常用性能计数器说明
    有关WCF公布IDataRead的问题
    负载均衡
  • 原文地址:https://www.cnblogs.com/chy1000/p/1845678.html
Copyright © 2011-2022 走看看