AJAX 异域使用

来源:互联网 发布:gulp 压缩js 编辑:程序博客网 时间:2024/04/30 22:11

 

AJAX 异域使用

if (!window.XMLHttpRequest)
{
    window.XMLHttpRequest 
= function()
    
{
        
var xmlHttp = null;
        
var ex;
        
try
        
{
            xmlHttp 
= new ActiveXObject("Msxml2.XMLHTTP.4.0");
        }

        
catch (ex)
        
{
            
try
            
{
                xmlHttp 
= new ActiveXObject("MSXML2.XMLHTTP");
            }

            
catch (ex)
            
{
                
try
                
{
                    xmlHttp 
= new ActiveXObject("Microsoft.XMLHTTP");
                }

                
catch (ex)
                
{}
            }

        }

        
return xmlHttp;
    }

}


function XHR(callback)
{
    
switch(typeof(callback))
    
{
        
case "function":
        
case "string":
            
break//允许参数是 函数或字符串

        
default:
            
return null;
    }

    
//*/

    
var xml_method = 0;
    
var http = new XMLHttpRequest();
    
if (http == null)
    
{
        
//alert("创建对象失败!");
        return null;
    }


    http.onreadystatechange 
= function(){
        
/*     0: Uninitialized
            1: Loading
            2: Loaded
            3: Interactive
            4: Finished 
*/

        
if(http.readyState == 4)
        
{
            
try
            
{
                
var ret = http.responseText; //结果
                if (typeof(callback)=="function")
                
{
                    callback(ret); 
//回访回调函数
                }

                
else if(typeof(callback)=="string")
                
{
                    
var lc = callback.indexOf("(");
                    
var rc = callback.indexOf(")");
                    
//alert("callback: "+lc+" "+rc);
                    if ((lc<0)&&(rc<0))
                    
{
                        s 
= callback+"(ret)";
                    }

                    
else
                    
{
                        
var a = "";
                        a 
= (rc-lc<2)?"":",";
                        r 
= /)/g;
                        s 
= callback.replace(r ,a+"ret)");
                    }

                    
//alert(s);
                    eval(s);
                }

                
//http = null;
            }

            
catch(e)
            
{
                
//alert(e.description);
            }

        }

    }
;

    
this.get = function(url){
        
try
        
{
            
//alert('a');
            //*
            http.open('get', url, true);
            http.send(
null);
            
//*/
        }

        
catch(e)
        
{
            
//alert(e.description);
        }

    }
;

    
this.post = function(url,args){
        
try
        
{
            http.open(
'post', url, true);
            http.setRequestHeader(
"Method""POST " + url + " HTTP/1.1");
            http.setRequestHeader(
"Charset","GB2312");
            http.setRequestHeader(
"Content-Type""application/x-www-form-urlencoded");
            
//*
            var arg_g_arr = args.split("&");
            
for(key in arg_g_arr)
            
{
                value_arr 
= arg_g_arr[key].split("=");
                value_arr[
1= encodeURI(value_arr[1]);
                arg_g_arr[key] 
= value_arr.join("=");
            }

            args 
= arg_g_arr.join("&");
            
//alert(args);
            //*/
            http.send(args);
        }

        
catch(e)
        
{
            
//alert(e.description);
        }

    }
;
}


_gObjByID 
= function(id) {
    
return document.getElementById(id);
}


//商家排行
var CurrentShopPaiHangFlag='1';
function OperatePaiHangDiv(divID)
{
    
//alert(CurrentCircleFlag);
    var obj=null;
    
var objShowPanel=null;
    objShowPanel
=_gObjByID("DivShopPaiHang_ShowPanel");
    
var shopPanel_="DivShopPaiHang_ShowPanel";
    
if(CurrentShopPaiHangFlag!=divID)
    
{                        
            
for(var i=1;i<=3;i++)
            
{
                _gObjByID(
"DivShopPaiHang_Flag" + i).removeAttribute("className");
                _gObjByID(
"DivShopPaiHang_Flag" + i).removeAttribute("class");
            }

            _gObjByID(
"DivShopPaiHang_Flag" + divID).className='current';
            
            
            
if(CurrentShopPaiHangFlag!="")
            
{
                
//alert('CurrentCircleFlag!=""');
                obj=_gObjByID("DivShopPaiHang_Flag" + divID + "_Content");
                _gObjByID(
"DivShopPaiHang_Flag" + CurrentShopPaiHangFlag + "_Content").innerHTML=objShowPanel.innerHTML;
                objShowPanel.innerHTML
=GetLoadingImg();
                
if(obj.innerHTML == null || obj.innerHTML == "" || obj.innerHTML == GetLoadingImg())
                
{//alert('GetFromAspx');
//
                    var oXmlHttp = createXMLHttp();        
//
                    ShowDivContent('indexContent/DivShopPaiHang.aspx?Flag=' + divID,oXmlHttp,"DivShopPaiHangFlag"+divID,objShowPanel);
                    
                    
var x = new XHR("re_OperatePaiHangDiv('DivShopPaiHang_ShowPanel','DivShopPaiHangFlag"+divID+"')");
                     
//alert(url);
                     var url = "indexContent/DivShopPaiHang.aspx?Flag=" + divID ;
                    x.get(url);
                }

                
else
                
{//alert('GetFromDiv');
                    objShowPanel.innerHTML=obj.innerHTML;
                    obj.innerHTML
="";
                }

            }

            
else
            
{
                    
var x = new XHR("re_OperatePaiHangDiv('DivShopPaiHang_ShowPanel','DivShopPaiHangFlag"+divID+"')");
                     
//alert(url);
                     var url = "indexContent/DivShopPaiHang.aspx?Flag=" + divID ;
                    x.get(url);
            }
            
            
            CurrentShopPaiHangFlag
=divID;
            
//SwapPaiHangShopDiv('DivShopPaiHangFlag'+divID,'1');
    }

}

function re_OperatePaiHangDiv(id,id2,cc)
{
     _gObjByID(id).innerHTML 
= cc;
     SwapPaiHangShopDiv(id2,
'1');
}

function SwapPaiHangShopDiv(DivKey,ID)
{//DivS1  DivB1
    for(var i=1;i<=9;i++)
       
{
                   _gObjByID(DivKey 
+ '_S' + i).style.display='';
                   _gObjByID(DivKey 
+ '_B' + i).style.display='none';                        
        }

            _gObjByID(DivKey 
+ '_S' + ID).style.display='none';              
            _gObjByID(DivKey 
+ '_B' + ID).style.display='';
        ShowImg(
"Img_"+DivKey+"_"+ID,"ImgSrc_"+DivKey+"_"+ID);
}
function GetLoadingImg()
{
    
var ImgHtml;
    ImgHtml
='<div align="center">';
    ImgHtml
=ImgHtml+'<span><img src="indexImage1/loading.gif" alt="loading...." /></span>'
    ImgHtml
=ImgHtml+'</div>';
    
return ImgHtml;
}

 

INDEX.ASPX

<div class="hotShop sort1 block yspace" id="DivShopPaiHang_Food">
                
<div class="title">
                    
<span class="b1tl l"></span>
                    
<ul>
                        
<li id="DivShopPaiHang_Flag1" onmouseover="getPageDiv('DivShopPaiHang_Flag','1')" class="current" ><span><href="shop/" target="_blank">餐饮排行</a></span></li>
                        
<li id="DivShopPaiHang_Flag2" onmouseover="getPageDiv('DivShopPaiHang_Flag','2')"><span><href="shop/" target="_blank">玩乐排行</a></span></li>
                        
<li id="DivShopPaiHang_Flag3" onmouseover="getPageDiv('DivShopPaiHang_Flag','3')"><span><href="shop/" target="_blank">购物排行</a></span></li>
                    
</ul>
                    
<span class="b1tr r"></span>
                
</div>
                
<div id="DivShopPaiHang_Flag1_Content" class="txt"  style="display:none;"></div>
                
<div id="DivShopPaiHang_Flag2_Content" class="txt"  style="display:none;"></div>
                
<div id="DivShopPaiHang_Flag3_Content" class="txt"  style="display:none;"></div>
                
<div  id="DivShopPaiHang_ShowPanel" class="txt"  style="height:265px;">
                
<div class="txt11">
                    
<ul>
                    
                    
</ul>
                
</div>
                
</div>
                
<span class="bbl"><span class="bbr"></span></span>
            
</div>

 

DivShopPaiHang.aspx.cs

int SCurrentNum_PaiHangParty = 1;
        
int BCurrentNum_PaiHangParty = 1;
        
public string Flag = "1";
        
protected void Page_Load(object sender, EventArgs e)
        
{
            Flag 
= Request.QueryString["Flag"];
            
if (Flag != null && Flag != "" && BaDa.Comm.Components.Function.IsIntNumberic(Flag))
            
{
                DataSet DSPaiHang_Party 
= GetShopPHRs(Flag);
                lstPaiHang_Party.DataSource 
= DSPaiHang_Party.Tables[0].DefaultView;
                lstPaiHang_Party.DataBind();
                DSPaiHang_Party.Dispose();
            }


            
        }

        
//娱乐排行
        public string GetSCurrentNum_PaiHangParty()
        
{
            
return SCurrentNum_PaiHangParty.ToString();
        }

        
public string GetBCurrentNum_PaiHangParty()
        
{
            
return BCurrentNum_PaiHangParty.ToString();
        }

        
protected void lstPaiHang_Party_ItemDataBound(object sender, RepeaterItemEventArgs e)
        
{
            SCurrentNum_PaiHangParty 
= SCurrentNum_PaiHangParty + 1;
            BCurrentNum_PaiHangParty 
= BCurrentNum_PaiHangParty + 1;
        }


        
public string GetFlag()
        
{
            
return Flag;
        }


        
//获得排行商家Dataset
        private DataSet GetShopPHRs(string VFlag)
        
{
            BaDa.BLL.Shop_Com BllShop 
= new BaDa.BLL.Shop_Com();
            
string VSqlWhere = "ClassID=" + VFlag + " and CityCode='" + GetCurrentCityCode() + @"' and lower(Img)<>'shopempty.jpg' Order by Support desc";
            
return BllShop.GetListByWhere(9, VSqlWhere);
        }

 

DivShopPaiHang.aspx

<%@ OutputCache Duration="30" VaryByParam="Flag" %>
<div class="txt11">
                    
<ul>
                    
<asp:Repeater ID="lstPaiHang_Party" runat="server" EnableViewState="False" OnItemDataBound="lstPaiHang_Party_ItemDataBound">
          
<ItemTemplate>
                        
<li class="num11 more" style="display:none" id="DivShopPaiHangFlag<%#GetFlag()%>_B<%#GetSCurrentNum_PaiHangParty()%>">
                            
<class="numBig l"><span><%#GetSCurrentNum_PaiHangParty()%></span></p>
                            
<class="productImg l"><href="shop/spShow_<%# DataBinder.Eval(Container.DataItem, "ID")%>.html" target="_blank" title="<%# DataBinder.Eval(Container.DataItem, "ShopName")%>"><img  id="Img_DivShopPaiHangFlag<%#GetFlag()%>_<%#GetSCurrentNum_PaiHangParty()%>" alt="<%# DataBinder.Eval(Container.DataItem, "ShopName")%>"  width="50" height="50"/></a></p>
                            
<div class="productInfo">
                                
<h3><href="shop/spShow_<%# DataBinder.Eval(Container.DataItem, "ID")%>.html" target="_blank" title="<%# DataBinder.Eval(Container.DataItem, "ShopName")%>"><%# PLeft(DataBinder.Eval(Container.DataItem, "ShopName"),10)%></a></h3>
                                
<p>标签:<%# ShowTags(DataBinder.Eval(Container.DataItem, "Tags"))%></p>
                            
</div>
                            
<div id="ImgSrc_DivShopPaiHangFlag<%#GetFlag()%>_<%#GetSCurrentNum_PaiHangParty()%>"  style="display:none"><%# AdjustImgPath(DataBinder.Eval(Container.DataItem, "Img"))%></div>
                            
<span class="cf"></span>
                        
</li>
                        
<li id="DivShopPaiHangFlag<%#GetFlag()%>_S<%#GetSCurrentNum_PaiHangParty()%>" class="num<%#GetSCurrentNum_PaiHangParty()%> listHeight" onmouseover="SwapPaiHangShopDiv('DivShopPaiHangFlag<%#GetFlag()%>','<%#GetSCurrentNum_PaiHangParty()%>')"><href="shop/spShow_<%# DataBinder.Eval(Container.DataItem, "ID")%>.html" target="_blank" title="<%# DataBinder.Eval(Container.DataItem, "ShopName")%>"><%# PLeft(DataBinder.Eval(Container.DataItem, "ShopName"),18)%></a></li>
                
</ItemTemplate>
          
</asp:Repeater>
                    
</ul>
                
</div>
原创粉丝点击