你的代码没什么问题啊,你的CODE不也可以两种方法都运行吗,
简单点做直接合并就可以了<!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>
<script type="text/javascript">
<!--
function joinHTMLOrChangeTag(){
if(typeof arguments[0]=="object"){
arguments[0].onmouseout=(function(i){return function(){if(i)clearTimeout(i)}})(waitInterval);
changeTag.call(null,arguments[1])
}else{
joinHTML.apply(null,arguments)
}
}
//XMLHTTP读取外部文件
function joinHTML(strurl,element)
{
    try
    {
        var strxmlhttp;
        try
    {
        strxmlhttp = new ActiveXObject("Msxml2.XMLHTTP.3.0");
    }
    catch(e)
    {
        strxmlhttp = new XMLHttpRequest();
    }
    strxmlhttp.open("GET",strurl,false);
    strxmlhttp.send(null);
    document.getElementById(element).innerHTML=strxmlhttp.responseText;
    //alert(strxmlhttp.responseText);
    }
    catch(e)
    {
     alert(e);
    }
}//常规的更改ID的Display实现的滑动门
function GetObj(objID)
{
    if(document.getElementById)
    {
        return eval('document.getElementById("' + objID + '")');
    }
    else
    {
        if(document.layers)
        {
            return eval("document.layers['" + objID + "']");
        }
        else
        {
            return eval('document.all.' + objID);
        }
    }
}
//鼠标延迟感应
var waitInterval;
var MDelayTime=250;
function changeTag(index)
{
    clearTimeout(waitInterval);
    waitInterval=window.setTimeout("getShow("+index+");",MDelayTime);
}function getShow(index)
{
    clearTimeout(waitInterval);
    for(var i=1;i<6;i++)
    {
        if(GetObj("tagbox"+i)&&GetObj("tag"+i))
        {
            GetObj("tagbox"+i).style.display = 'none';
            GetObj("tag"+i).className = "";
        }
    }
    if(GetObj("tagbox"+index)&&GetObj("tag"+index))
    {
        GetObj("tagbox"+index).style.display = 'block';
        GetObj("tag"+index).className = "active";
    }
}
//-->
</script>
</head>
<body>
<ul>
    <li><a href="#" onMouseOver="joinHTMLOrChangeTag('1.htm', 'div1');">标签1</a></li>
    <li><a href="#" onMouseOver="joinHTMLOrChangeTag('3.htm', 'div1');">标签2</a></li>
    <li><a href="#" onMouseOver="joinHTMLOrChangeTag('1.htm', 'div1');">标签3</a></li>
    <li><a href="#" id="tag1" onMouseOver="joinHTMLOrChangeTag(this,1);" >标签4</a></li>
    <li><a href="#" id="tag2" onMouseOver="joinHTMLOrChangeTag(this,2);" >标签5</a></li>
    <li><a href="#" id="tag3" onMouseOver="joinHTMLOrChangeTag(this,3);" >标签6</a></li>
</ul>
<!--外部读取文件-->
<div id="div1" class="tabcontent"><script>joinHTML('1.htm', 'div1');</script></div>
<!--内部更改样式-->
<div id="tagbox1">111</div>
<div id="tagbox2" style="display: none">222</div>
<div id="tagbox3" style="display: none">333</div>
</body>
</html>

解决方案 »

  1.   


    <!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>
    <script type="text/javascript">
    <!--
    function joinHTMLOrChangeTag(){
    if(typeof arguments[0]=="object"){
    arguments[0].onmouseout=(function(i){return function(){if(i)clearTimeout(i)}})(waitInterval);
    changeTag.apply(null,Array.prototype.slice.call(arguments,1));
    }else{
    joinHTML.apply(null,arguments)
    }
    }
    //XMLHTTP读取外部文件
    function joinHTML(strurl,element)
    {
        try
        {
            var strxmlhttp;
            try
        {
            strxmlhttp = new ActiveXObject("Msxml2.XMLHTTP.3.0");
        }
        catch(e)
        {
            strxmlhttp = new XMLHttpRequest();
        }
        strxmlhttp.open("GET",strurl,false);
        strxmlhttp.send(null);
        document.getElementById(element).innerHTML=strxmlhttp.responseText;
        //alert(strxmlhttp.responseText);
        }
        catch(e)
        {
         alert(e);
        }
    }//常规的更改ID的Display实现的滑动门
    function GetObj(objID)
    {
        if(document.getElementById)
        {
            return eval('document.getElementById("' + objID + '")');
        }
        else
        {
            if(document.layers)
            {
                return eval("document.layers['" + objID + "']");
            }
            else
            {
                return eval('document.all.' + objID);
            }
        }
    }
    //鼠标延迟感应
    var waitInterval;
    var MDelayTime=250;
    function changeTag(index,element)
    {
        clearTimeout(waitInterval);
        waitInterval=window.setTimeout("getShow("+index+",'"+element+"');",MDelayTime);
    }function getShow(index,element)
    {
        clearTimeout(waitInterval);
        for(var i=1;i<6;i++)
        {
            if(GetObj("tagbox"+i)&&GetObj("tag"+i))
            {
                GetObj("tag"+i).className = "";
            }
        }
        if(GetObj("tagbox"+index)&&GetObj("tag"+index))
        {
            GetObj(element).innerHTML=GetObj("tagbox"+index).innerHTML;
            GetObj("tag"+index).className = "active";
        }
    }
    //-->
    </script>
    </head>
    <body>
    <ul>
        <li><a href="#" onMouseOver="joinHTMLOrChangeTag('1.htm', 'div1');">标签1</a></li>
        <li><a href="#" onMouseOver="joinHTMLOrChangeTag('3.htm', 'div1');">标签2</a></li>
        <li><a href="#" onMouseOver="joinHTMLOrChangeTag('1.htm', 'div1');">标签3</a></li>
        <li><a href="#" id="tag1" onMouseOver="joinHTMLOrChangeTag(this,1,'div1');" >标签4</a></li>
        <li><a href="#" id="tag2" onMouseOver="joinHTMLOrChangeTag(this,2,'div1');" >标签5</a></li>
        <li><a href="#" id="tag3" onMouseOver="joinHTMLOrChangeTag(this,3,'div1');" >标签6</a></li>
    </ul>
    <!--外部读取文件-->
    <div id="div1" class="tabcontent"><script>joinHTML('1.htm', 'div1');</script></div>
    <!--内部更改样式-->
    <div id="tagbox1" style="display: none">111</div>
    <div id="tagbox2" style="display: none">222</div>
    <div id="tagbox3" style="display: none">333</div>
    </body>
    </html>
      

  2.   

    解答者请同时回复下面链接(100分),以便给分!
    http://topic.csdn.net/u/20071116/20/c08a973b-6165-4e66-8262-f12829dad108.html
      

  3.   

    当然可以了<!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>
    <script type="text/javascript">
    <!--
    //鼠标延迟感应
    var waitInterval;
    var MDelayTime=250;
    function joinHTMLOrChangeTag(){
    arguments[0].onmouseout=(function(i){return function(){if(i)clearTimeout(i)}})(waitInterval);
            if(waitInterval)clearTimeout(waitInterval);
         waitInterval=window.setTimeout("getShow('"+arguments[1]+"','"+arguments[2]+"','"+arguments[0].id+"');",MDelayTime);
    }
    //XMLHTTP读取外部文件
    function joinHTML(strurl,element)
    {
    var temp=""
        try
        {
            var strxmlhttp;
            try
                {
                    strxmlhttp = new ActiveXObject("Msxml2.XMLHTTP.3.0");
                }
                catch(e)
                {
                    strxmlhttp = new XMLHttpRequest();
                }
        strxmlhttp.open("GET",strurl,false);
        strxmlhttp.send(null);
        temp=strxmlhttp.responseText;
        //alert(strxmlhttp.responseText);
        }
        catch(e)
        {
            temp=e;
        }
        return temp
    }//常规的更改ID的Display实现的滑动门
    function GetObj(objID)
    {
        return document.getElementById(objID);
    }
    function getShow(element,strurl,id)
    {
        clearTimeout(waitInterval);
        for(var i=1;i<6;i++)
        {
            if(GetObj("tag"+i))
            {
                GetObj("tag"+i).className = "";
            }
        }
        var strHTML
        if(strurl!="undefined")
         strHTML=joinHTML(strurl,element)
        else
        if(GetObj(id+"none")&&GetObj(id))
        {
            strHTML=GetObj(id+"none").innerHTML;
            GetObj(id).className = "active";
        }
        GetObj(element).innerHTML=strHTML
    }
    //-->
    </script>
    </head>
    <body>
    <ul>
        <li><a href="#" onMouseOver="joinHTMLOrChangeTag(this, 'div1','1.htm');">标签1</a></li>
        <li><a href="#" onMouseOver="joinHTMLOrChangeTag(this, 'div1','3.htm');">标签2</a></li>
        <li><a href="#" onMouseOver="joinHTMLOrChangeTag(this, 'div1','1.htm');">标签3</a></li>
        <li><a href="#" id="tag1" onMouseOver="joinHTMLOrChangeTag(this,'div1');">标签4</a></li>
        <li><a href="#" id="tag2" onMouseOver="joinHTMLOrChangeTag(this,'div1');">标签5</a></li>
        <li><a href="#" id="tag3" onMouseOver="joinHTMLOrChangeTag(this,'div1');">标签6</a></li>
    </ul>
    <!--外部读取文件-->
    <div id="div1" class="tabcontent"><script>joinHTML('1.htm', 'div1');</script></div>
    <!--内部更改样式-->
    <span style="display:none">
    <div id="tag1None">111</div>
    <div id="tag2None">222</div>
    <div id="tag3None">333</div>
    </body>
    </html>
      

  4.   

    还有一个问题,默认怎么调用非外部读取的内容?<div id="div1" class="tabcontent"><script>joinHTML('1.htm', 'div1');</script></div>
      

  5.   

    <div id="div1" class="tabcontent"><script>joinHTMLOrChangeTag(GetObj("tag1"), 'div1');</script></div>
      

  6.   

    clearTimeout(waitInterval);
    waitInterval=window.setTimeout("getShow("+index+");",MDelayTime);不支持 onMouseOut="clearTimeout(waitInterval);" 了,鼠标迅速移过标签不会触发标签跳转的清除Timeout函数
    另外,感觉有点臃肿,今晚先结了本帖,另外100分帖等等看有没有更完善的解决之道.像网易首页那样的,你可以下载下来看看
      

  7.   

    转至:http://topic.csdn.net/u/20071116/20/c08a973b-6165-4e66-8262-f12829dad108.html