我在使用这个效果的时候
本地测试没任何问题但是拿到主机上
几乎不能刷新一个页面刷新三次 几乎就不显示了谁能帮我解决一下啊 这个是
仿雅虎、网易ajax标签导航效果的实现我可以提供原文件包我QQ43369738谢谢谢谢
-------------tab/js/function.js---------------------
function getObject(objectId) {
     if(document.getElementById && document.getElementById(objectId)) {
// W3C DOM
   return document.getElementById(objectId);
     } 
     else if (document.all && document.all(objectId)) {
// MSIE 4 DOM
   return document.all(objectId);
     } 
     else if (document.layers && document.layers[objectId]) {
// NN 4 DOM.. note: this won't find nested layers
   return document.layers[objectId];
     } 
     else {
   return false;
    }
} var responsecont;
var xmlHttp;
var xH=new Object();
var rqtp=new Object();
var dateStr,dStr;
var requestType;
var etype=0;
var newsstring;
var ajccache=new Object();
var url;
var MouseDelayTime=200;//鼠标感应延迟
var waitInterval;
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);function SetCookie(name,value,expires){//写cookie
var exp=new Date();
exp.setTime(exp.getTime()+expires*60000);
document.cookie=name+"="+escape(value)+";expires="+exp.toGMTString();//+";domain=arkoo.com;path=/";

function readcookie(name){//读取cookie
var oRegex=new RegExp(name+'=([^;]+)','i');
var oMatch=oRegex.exec(document.cookie);
if(oMatch&&oMatch.length>1)return unescape(oMatch[1]);
else return '';
}function CreateXMLHttpRequest(){
   // Initialize Mozilla XMLHttpRequest object
   if (window.XMLHttpRequest){
       xmlHttp = new XMLHttpRequest();
   } 
   // Initialize for IE/Windows ActiveX version
   else if (window.ActiveXObject) {
       try{
xmlHttp = new ActiveXObject("Msxml2.XMLHTTP.3.0");
   } 
       catch (e){
try{
xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
}
catch (e){newsstring = "<div class='loading'>Loading rquest content fail, Please try it again latter...</div>";}
       }
   }
}function getnews(tagid,x){
url = "tab/"+tagid+'_'+x+'.html';
var url2=url;
requestType = tagid;
if(ajccache[url]==null){
var loadstatustext="<div class='loading'><img src='tab/images/loading.gif' /> Loading request content, please wait...</div>";
rqtp[tagid]=tagid;
CreateXMLHttpRequest();   
var hdr=tagid;
   xH[tagid]=xmlHttp;
   if(etype==1)getObject(requestType+'_cnt').innerHTML = loadstatustext;
   xH[tagid].onreadystatechange = function(){
   // only if xmlHttp shows "complete"
   if (xH[tagid].readyState == 4){
      // only http 200 to process
      if (window.location.href.indexOf("http")==-1 || xH[tagid].status == 200){
         newsstring = xH[tagid].responseText;
    dateStr=xH[tagid].getResponseHeader("Date");
    dStr = new Date(dateStr);SetCookie('dStr',dStr,10000000);
         //inject centent to tab-pane
            shownews(rqtp[tagid],newsstring);
            ajccache[url2]=newsstring;
      }
   }
}
   xH[tagid].open("GET", url, true);
   xH[tagid].setRequestHeader("If-Modified-Since","0");
   xH[tagid].send(null);
}
else
{shownews(requestType,ajccache[url]);}
}function shownews(requestType,newsstring){
//<![CDATA[
    responsecont = getObject(requestType+'_cnt');
    responsecont.innerHTML = newsstring;
    getObject("pdate").innerHTML=dStr;
if(getObject("alta")){ata(getObject("alta"));hideText();}
//]]>
}

解决方案 »

  1.   

    function TabNews(tagid,x){
    var lim=getObject(tagid+"_mn").getElementsByTagName('li');
    var mnt=getObject(tagid+"_mn").getElementsByTagName('li').length;
    if(!mnt)mnt=4;
    for(var i=0;i<mnt;i++){
    if(i == (x-1)){
    if(i==0){
    lim[i].className="tabactive1";
    }
    if(i==1) lim[i].className="tabactive4";

    if(i==2) lim[i].className="tabactive4"; if(i==3) {lim[i].className="tabactive3";}

    if(i==4) {lim[i].className="tabactive4";}

    if(i==5) {lim[i].className="tabactive3";}


    //else{
    //lim[i].className="tabactive2";
    //lim[i-1].getElementsByTagName('a')[0].style.background="url()";
    //}
    lim[i].getElementsByTagName('a')[0].style.background="url(tab/images/tab_bgs.gif) right -60px no-repeat";
    try{getnews(tagid,x);}catch(e){alert(e);}
    }
    else{
    lim[i].className="";
    lim[i].getElementsByTagName('a')[0].style.background="url(tab/images/tab_bgs.gif) right -88px no-repeat";
    }
    }
    }var idn,tmpa,tmpat;
    var aw="";
    var rT;
    function aet(tagid,etp){
    var lis=getObject(tagid+"_mn").getElementsByTagName('li');
    var wts=tagid+"_cnt";
    var wnf=tagid+"info";
    if(readcookie(tagid+"_cntd")=="none"){
    hiddenList(getObject(wts));
    maxh[wts]=readcookie(tagid+"_cnth");
    getObject("pdate").innerText=readcookie("dStr");
    }
    else{
    if(parseInt(readcookie(wnf))>1)
    TabNews(tagid,readcookie(wnf));//返回上次访问
    else
    TabNews(tagid,1);
    if(etp==1)aw=tagid+readcookie(wnf);
    }
    for(var iy=0;iy<lis.length;iy++){
    with(lis[iy]){
    if(etp==0){
    lis[iy].onmouseover=function(){
    rT=attributes.getNamedItem('id').value.substring(0, attributes.getNamedItem('id').value.length-1);
    if(getObject(rT+'_cnt').style.display != "none"&&className!="") return;
    idn=parseInt(attributes.getNamedItem('id').value.substring(attributes.getNamedItem('id').value.length-1, attributes.getNamedItem('id').value.length));
    clearTimeout(waitInterval);
    waitInterval=window.setTimeout("etype=0;TabNews(rT,idn);if(getObject(rT+'_cnt').style.display == 'none')displayList(rT+'_cnt'); SetCookie(rT+'info',idn,10000000);SetCookie(rT+'_cntd','ture',10000000);",MouseDelayTime);
    }
    lis[iy].onmouseout=function(){if(getObject(rT+'_cnt').style.display != "none"&&className!="") return;clearTimeout(waitInterval);}

    if(etp==1){
    lis[iy].onmouseover=function(){getElementsByTagName('a')[0].blur();}
    lis[iy].onclick=function(){ 
    idn=parseInt(attributes.getNamedItem('id').value.substring(attributes.getNamedItem('id').value.length-1, attributes.getNamedItem('id').value.length));
    rT=attributes.getNamedItem('id').value.substring(0, attributes.getNamedItem('id').value.length-1);
    if(getObject(rT+'_cnt').style.display != "none"&&(idn==1&&(this.className=="tabactive1")||aw==attributes.getNamedItem('id').value)) return true;
    if(getObject(rT+'_cnt').style.display == "none"){ 
    displayList(rT+'_cnt');SetCookie(rT+'_cntd','ture',10000000);
    }
    etype=1;
    TabNews(rT,idn);
    SetCookie(rT+'info',idn,10000000);
    aw=attributes.getNamedItem('id').value;
    getElementsByTagName('a')[0].blur();
    return false;
    }}}
    }
    } function ata(objid){
    var as=objid.getElementsByTagName('a');
    for(var i=0;i<as.length;i++){
    as[i].target="_self";
    }
    }
    function GetUrlParam(paramName){ //获取URL参数的函数
        var oRegex = new RegExp('[\?&]' + paramName + '=([^&]+)', 'i');
        var oMatch = oRegex.exec(window.location.search);
        if(oMatch && oMatch.length > 1)
            return oMatch[1];
        else
            return '';
    }
    function hideText(){
    if(document.getElementsByTagName("arkoo:title").length==0){
    var upu=GetUrlParam("username");
    var upa=GetUrlParam("articleid");
    getObject("closeit").innerHTML='<a href="http://cn.arkoo.com/diaryfiles/showpage.aspx?username='+upu+'&articleid='+upa+'" target="_blank">查看原文</a> <a href="tab.html" target="_self">×</a>';
    }
    }var maxh=new Object();
    //显示内容框
    function displayList(oid){    
    var h = 0;  
    var objid=getObject(oid);
          if(isNaN(parseInt(maxh[oid]))) var max_h = 210; // 容器的最大高度
    else 
    var max_h = maxh[oid];
          var anim = function(){
        h += 50; // 每次递增50像素
        if(h >= max_h){ 
                objid.style.height = max_h + "px";; 
                getObject('tab'+objid.attributes.getNamedItem('id').value).style.background="url(tab/images/tab_bgs.gif) 5px -113px no-repeat"; // 让图片标签改变背景        
                if(tt){window.clearInterval(tt);} 
        }
        else{ 
                    objid.style.display="block"; 
                    objid.style.height = h + "px";
        }
        }
       
      var tt = window.setInterval(anim,2);  
    }// 隐藏列表框
    function hiddenList(objid){
           var h = objid.offsetHeight;
       var anim = function(){
         h -= 50; // 每次递减50像素
         if(h <= 5){
                 objid.style.display="none"; 
               getObject('tab'+objid.attributes.getNamedItem('id').value).style.background="url(tab/images/tab_bgs.gif) -14px -114px no-repeat"; 
               if(tt){window.clearInterval(tt);}
           }
           else{
               objid.style.height = h + "px";
           }
       }
         
       var tt = window.setInterval(anim,2); 
    }function showClassList(oid){
    var objid=getObject(oid);
       if(objid.style.display == "none"){
    if(objid.getElementsByTagName("img").length==0)TabNews(oid.substring(0,oid.indexOf("_")),1);
           displayList(oid); // 显示内容框
    SetCookie(oid+'d',"ture",10000000);
       }
       else{
          if(isNaN(parseInt(maxh[oid]))){
             if(Browser.isFirefox){
                maxh[oid]=objid.offsetHeight;
          }
          else{
             maxh[oid]=objid.offsetHeight; // 内容容器的初始高度
              }
          }
          hiddenList(objid); // 隐藏内容框 
    SetCookie(oid+'d',"none",10000000);SetCookie(oid+'h',maxh[oid],10000000);
       }
    }
      

  2.   

    --------------index.html-----------------
    <!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=gb2242">
    <title>学校</title>
    <link href="tab/css/style.css" rel="stylesheet" type="text/css" />
    <script language="javascript" type="text/javascript" src="tab/js/function.js"></script>
    </head>
    <body> 
    <div align="center"><img src="tab/images/head.jpg" /></div>
    <!--鼠标划过特效开始--> <div id="news_mn" class="news_tabsnav"><!--<span id="tabnews_cnt" class="class_title" onClick="showClassList('news_cnt')"></span>--> 
        <li id="news1"><a href="http://www." target="_blank"><font color="ffffff">培训</font></a></li> 
        <li id="news2"><a href="#" target="_blank"><font color="ffffff">测试</font></a></li> 
        <li id="news3"><a href="#" target="_blank"><font color="ffffff">服务</font></a></li> 
        <li id="news4"><a href="#" target="_blank"><font color="ffffff">产品</font></a></li> 
        <li id="news5"><a href="http://bbs." target="_blank"><font color="ffffff">论坛</font></a></li> 
      <div class="clear"></div> 
    </div> 
    <div class="news_content"> 
      <div id="news_cnt"> 
        <noscript> 
        <a href=><img src="tab/images/head.jpg" alt="" width="154" height="115" border="0" /></a> 
        </noscript> 
      </div> 
      <div class="siteinfo"> ↑鼠标滑过触发↑ </div> 
    </div> 
    <!--鼠标划过特效开始--> <p>
      <script type="text/javascript">
    <!--
    aet("news",0); //0为鼠标划过
    -->
      </script> 
    </p><hr />
    <div  align="center">
    CopyRight &copy; www.com.cn
    </div>
    </body>
    </html>
      

  3.   

    ----------------tab/css/style.css---------------------
    body{ margin: 0 auto;width:760px;padding: 0;background: orange;color: #000;font: normal 12px 宋体,arial,sans-serif;text-align: center;}
    div,form,ul,ol,li,span,p {border: 0;margin: 0;padding: 0;}/*清除float*/
    .clear{ clear: both; font-size:1px; visibility: hidden; }/*空格*/
    .blank2{font-size: 1px;height: 2px;margin: 0 auto;width: 100%;}
    .blank5{font-size: 1px;height: 5px;margin: 0 auto;width: 100%;}
    .sblank2{font-size: 1px;height: 2px;margin: 0 auto;width: 100%;}
    .sblank3{font-size: 1px;height: 3px;margin: 0 auto;width: 100%;}
    .sblank5{font-size: 1px;height: 5px;margin: 0 auto;width: 100%;}
    .sblank7{font-size: 1px;height: 7px;margin: 0 auto;width: 100%;}/*边距*/
    .margin-right{margin-right: 6px;}
    .margin-right-left{margin-right: 3px; margin-left:3px;}/*字体颜色*/
    .fcborange{color: #F0741A;font: bold 12px arial,sans-serif;}
    .fcred{color:#FF0000;}
    .fcwhite{color:#FFF;font:normal 13px 宋体,arial,sans-serif;letter-spacing:1px;}.class_title{float:right;
    margin: 0 auto;
    width: 14px;
    height: 27px;
    border: 1px solid #9EB1C0;
    padding: 1px;
    cursor:pointer;
    background:url(../images/tab_bgs.gif) 5px -113px no-repeat;
    }
    #news_cnt,#tab_cnt{
      display: block;
      overflow:hidden;
    }/*新闻标签导航*//*-----------------栏目导航前景色------------------*/
    .news_tabsnav{
        background:#ffffff url(../images/tab_bgs.gif) left -140px repeat-x;
    border: solid #B0BEC7;
    border-width: 0 1px 0 1px;
    height: 22px;
    margin: 0 auto;
    padding: 0;
    width: 760px;

    }.news_tabsnav .tabsmenu{
    height: 22px;
    }.news_tabsnav .tab_sline {
    padding-top: 3px;
    width: 2px;
    }.news_tabsnav li{
    color: #18397C;
    float:left;
    display:inline;
    font: normal 12px 宋体,arial,sans-serif;
    list-style-type: none;
    margin:0;
    text-align: center;
    }
    .news_tabsnav li a{
    display:block;
    float:left;
    padding:4px 32px 0 32px;/*------------链接左右补白宽度,若要固定宽度,些句可改为:padding-top:4px;width:100px;----------------------*/
    padding-top:4px;
    height:18px;
    background:url(../images/tab_bgs.gif) right -88px no-repeat; 
    }#news_mn li a{padding:10px 15px 0 15px;}/*news组标签链接左右补白宽度*/
    /*-----------------导航菜单点击后的样式
    border:1px #111 solid;---------------------------------*/
    .news_tabsnav .tabactive1{
    background: #FF6600;                                  /*--url(../images/tab_bgs.gif);--*/
    color: #F26400;
    }
    .news_tabsnav .tabactive1 a{background:#ffee55;}
    .news_tabsnav .tabactive2{
    background: #aaffff;              /*--导航菜单点击后的颜色--*/
    color: #F26400;
    }
    .news_tabsnav .tabactive1 a{background:#000000;}
    .news_tabsnav .tabactive3{
    background: #0099FF;              /*--导航菜单点击后的颜色--*/
    color: #000000;
    }
    .news_tabsnav .tabactive1 a{background:#000000;}
    .news_tabsnav .tabactive4{
    background: #0099FF;              /*--导航菜单点击后的颜色--*/
    color: #000000;
    }
    .news_tabsnav .tabactive1 a{background:#000000;}
    .news_tabsnav .tabactive5{
    background: #FF6600;              /*--导航菜单点击后的颜色--*/
    color: #000000;
    }/*最新消息主体*/
    .news_content{
    clear:both;
    border: solid #B0BEC7;
    border-width: 0 1px 1px 1px;
    margin: 0 auto;
    width: 760px;
    }
    .news_content .li1a li a{display:block;float:left;width:210px;overflow: hidden; text-overflow:ellipsis; white-space:nowrap;}
    .news_content .li1a a:hover{background-color:#fff0f0;}.news_content .li1a2 li a{display:block;float:left;width:160px;overflow: hidden; text-overflow:ellipsis; white-space:nowrap;}
    .news_content .li1a2 a:hover{background-color:#fff0f0;}.rightmore{float:right;width:200px;text-align:right;}
    /*推荐新闻列表*/
    .news_list{
    height: 120px;
    margin: 0 auto;
    width: 760px;
    }.news_list img{
    border: 1px solid #9EB1C0;
    float: left;
    height: 115px;
    margin: 0;
    padding: 1px;
    width: 154px;
    cursor: pointer;
    }.news_list .new_top7{
    float: right;
    height: 106px;
    margin: 0;
    width: 490px;
    }.news_list .new_top7 li{
    float: left;
    font: normal 13px 宋体,sans-serif;
    height: 12px;
    list-style-type: none;
    margin: 0;
    padding: 0 0 5px 0!important;
    padding: 0 0 2px 0;
    width: 490px;
    }.news_list .new_top7 li a:link,a:visited{
    color: #18397C;
    }.news_list .new_top7 li a:hover{
    color: #FF0000;
    }/*LOGO广告*/
    .logos{
    margin: 0 auto;
    width: 458px;
    padding: 1px !important;
    border: 1px solid #9EB1C0;
    }.logoscnt{
    margin: 0 auto;
    width: 458px;
    padding: 6px 0 7px 0 !important;
    padding: 4px 0 5px 0;
    text-align: center;
    background: url(../images/tab_bgs.gif) 0 -170px repeat-x;
    }
    .logoscnt img{border:0}
    /*基本信息统计*/
    .siteinfo{
    height: 12px;
    letter-spacing: 1px;
    margin: 0 auto;
    padding: 4px 0 4px 0 !important;
    padding: 2px 0 2px 0;
    text-align: center;
    width: 760px;
    }.loading{
        margin:0 auto;
    padding-top:77px;
    padding-bottom:77px;
    width:460px;
    height:18px;
    text-align:center;
    }/*链接样式*/
    a:link{color: #000;text-decoration: none;}
    a:visited{color: #000;text-decoration: none;}
    a:hover{color: #16387C;text-decoration: underline;}-------------tab/---------------
    相对应的静态页面 
    一个一个调用