源码网,源码论坛,源码之家,商业源码,游戏源码下载,discuz插件,棋牌源码下载,精品源码论坛

 找回密码
 立即注册
查看: 367|回复: 21

[AJAX相关] 163 AJAX Tab

[复制链接]

7万

主题

861

回帖

32万

积分

论坛元老

Rank: 8Rank: 8

积分
329525
发表于 2007-1-23 00:00:00 | 显示全部楼层 |阅读模式

复制代码 代码如下:
// 163 AJAX Tab  
// update 2006.10.18 
// 增加鼠标延迟感应特性。 
// update 2006.10.8 
// A 标签 href 属性将保持原有HTML功能。增加urn属性为AJAX Load 路径。 
// update 2006.10.11 
// 修正IE5.0 undefined 未定义错误,增加脚本错误屏蔽 
var Browser = new Object(); 
Browser.isMozilla = (typeof document.implementation != 'undefined') && (typeof document.implementation.createDocument != 'undefined') && (typeof HTMLDocument!='undefined'); 
Browser.isIE = window.ActiveXObject ? true : false; 
Browser.isFirefox = (navigator.userAgent.toLowerCase().indexOf("firefox")!=-1); 
Browser.isOpera = (navigator.userAgent.toLowerCase().indexOf("opera")!=-1); 
if (Browser.isFirefox) { // entend Event Mod for FireFox 
    extendEventObject(); 

function extendEventObject() { 
    Event.prototype.__defineGetter__("srcElement", function () { 
        var node = this.target; 
        while (node.nodeType != 1) node = node.parentNode; 
        return node; 
    }); 

    Event.prototype.__defineGetter__("fromElement", function () { 
        var node; 
        if (this.type == "mouseover") 
            node = this.relatedTarget; 
        else if (this.type == "mouseout") 
            node = this.target; 
        if (!node) return; 
        while (node.nodeType != 1) node = node.parentNode; 
        return node; 
    }); 

    Event.prototype.__defineGetter__("toElement", function () { 
        var node; 
        if (this.type == "mouseout") 
            node = this.relatedTarget; 
        else if (this.type == "mouseover") 
            node = this.target; 
        if (!node) return; 
        while (node.nodeType != 1) node = node.parentNode; 
        return node; 
    }); 

function IsChild(cNode,pNode){ 
    while(cNode!=null){ 
        cNode=cNode.parentNode; 
        if(cNode==pNode) return true;  
    } 
    return false; 


var ajccache=new Object(); 
var waitInterval; 
var tempref; 
var MouseDelayTime=150;//鼠标感应延迟300毫秒 
function getTBprefixName(str,sta){ 
    if(str.indexOf("active")!=-1 || str.indexOf("normal")!=-1) str=str.substr(6); 
        else if(str.indexOf("over")!=-1) str=str.substr(4); 
            else str=""; 
    return sta+str; 

function startajaxtabs(){ 
    for(var i=0;i<arguments.length;i++) 
    { 
        var ulobj=document.getElementById(arguments[i]); 
            ulist=ulobj.getElementsByTagName("li");             
            for(var j=0;j<ulist.length;j++) 
            { 
                var thelist=ulist[j]; 
                if(thelist.parentNode.parentNode!=ulobj) continue;//只有第一层li有效 fixed 2006.9.29 
                var ulistlink=thelist.getElementsByTagName("a")[0]; 
                var ulistlinkurl=ulistlink.getAttribute("urn"); 
                var ulistlinktarget=ulistlink.getAttribute("rel"); 
                thelist.setActive=function(bactive){ 
                    if(bactive){ 
                        this.status="active"; 
                        this.className=getTBprefixName(this.className,"active"); 
                    }else{ 
                        this.status="normal"; 
                        this.className=getTBprefixName(this.className,"normal"); 
                    } 
                } 
                thelist.LoadTab=function(){ 
                    this.setActive(true); 
                    this.parentNode.parentNode.activetab.setActive(false); 
                    this.parentNode.parentNode.activetab=this;                     
                    var ulistlink=this.getElementsByTagName("a")[0]; 
                    loadAJAXTab(ulistlink.getAttribute("urn"),ulistlink.getAttribute("rel")); 
                } 
                thelist.onmouseover=function(aEvent){ 
                    var myEvent = window.event ? window.event : aEvent; 
                    var fm=myEvent.fromElement; 
                    if(IsChild(fm,this) || fm==this) return;//过滤子元素event 
                    if(this.status=="active") return; 
                    tempref=this; 
                    clearTimeout(waitInterval); 
                    waitInterval=window.setTimeout("tempref.LoadTab();",MouseDelayTime); 
                } 

                thelist.onmouseout=function(aEvent){ 
                    var myEvent = window.event ? window.event : aEvent; 
                    var em=myEvent.toElement; 
                    if(IsChild(em,this) || em==this) return; //过滤子元素event 
                    if(this.status=="active") return; 
                    clearTimeout(waitInterval); 
                } 

                if(ulistlinkurl.indexOf("#default")!=-1){ 
                    thelist.setActive(true); 
                    ulobj.activetab=thelist; 
                    ajccache[ulistlinkurl]=getElement(ulistlinktarget).innerHTML; 
                }else{ 
                    thelist.setActive(false); 
                } 

            } 
        if(ulobj.activetab==null) ulobj.activetab=ulist[0]; 
    } 


function getXmlhttp() 

    var http_request; 

    if(window.XMLHttpRequest) {  
        http_request = new XMLHttpRequest(); 
        if (http_request.overrideMimeType) { 
            http_request.overrideMimeType("text/xml"); 
        } 
    } 
    else if (window.ActiveXObject) {  
        try { 
            http_request = new ActiveXObject("Msxml2.XMLHTTP"); 
        } catch (e) { 
            try { 
                http_request = new ActiveXObject("Microsoft.XMLHTTP"); 
            } catch (e) {} 
        } 
    } 
    if (!http_request) {  
        window.alert("can't create XMLHttpRequest object."); 
        return null; 
    }     
    return http_request; 


function loadAJAXTab(url,contentid){ 
    var ocontent=getElement(contentid); 
    if(ajccache[url]==null) { 
        var xhttp=getXmlhttp();         
            xhttp.onreadystatechange=function(){ 
                if(xhttp.readyState == 4 && (xhttp.status==200 || window.location.href.indexOf("http")==-1)) 
                {                     
                    ocontent.innerHTML=xhttp.responseText; 
                    ajccache[url]=ocontent.innerHTML; 
                } 
            } 
        xhttp.open("GET",url,true); 
        xhttp.send(null); 
    }else{ 
        ocontent.innerHTML=ajccache[url]; 
    } 

window.onerror=function(){return true}

具体使用方法,看www.163.com用的

回复

使用道具 举报

0

主题

2万

回帖

0

积分

中级会员

Rank: 3Rank: 3

积分
0
发表于 2022-8-8 23:58:47 | 显示全部楼层
这个源码不错啊
回复 支持 反对

使用道具 举报

2

主题

2万

回帖

473

积分

中级会员

Rank: 3Rank: 3

积分
473
发表于 2022-12-18 02:05:33 | 显示全部楼层
的沙发水电费水电费
回复 支持 反对

使用道具 举报

1

主题

2万

回帖

319

积分

中级会员

Rank: 3Rank: 3

积分
319
发表于 2023-2-9 23:02:33 | 显示全部楼层
的谁vdvdsvdsvdsdsv
回复 支持 反对

使用道具 举报

0

主题

2万

回帖

66

积分

注册会员

Rank: 2

积分
66
发表于 2023-8-4 08:53:52 | 显示全部楼层
啪啪啪生怕PSP怕
回复 支持 反对

使用道具 举报

3

主题

2万

回帖

50

积分

注册会员

Rank: 2

积分
50
发表于 2023-9-10 03:33:17 | 显示全部楼层
刷屏刷屏刷屏
回复 支持 反对

使用道具 举报

0

主题

1万

回帖

0

积分

中级会员

Rank: 3Rank: 3

积分
0
发表于 2023-12-2 11:44:14 | 显示全部楼层
66666666666666666666
回复 支持 反对

使用道具 举报

0

主题

2万

回帖

0

积分

中级会员

Rank: 3Rank: 3

积分
0
发表于 2023-12-6 09:59:19 | 显示全部楼层
看看看咋么
回复 支持 反对

使用道具 举报

1

主题

2万

回帖

321

积分

中级会员

Rank: 3Rank: 3

积分
321
发表于 2024-4-28 08:07:55 | 显示全部楼层
抽根烟,下来看看再说
回复 支持 反对

使用道具 举报

2

主题

2万

回帖

67

积分

注册会员

Rank: 2

积分
67
发表于 2024-6-9 05:07:55 | 显示全部楼层
为全额万千瓦
回复 支持 反对

使用道具 举报

高级模式
B Color Image Link Quote Code Smilies

本版积分规则

手机版|小黑屋|网站地图|源码论坛 ( 海外版 )

GMT+8, 2024-11-22 11:08 , Processed in 0.196764 second(s), 26 queries .

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表