你的代码没什么问题啊,你的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>
简单点做直接合并就可以了<!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>
<!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>
http://topic.csdn.net/u/20071116/20/c08a973b-6165-4e66-8262-f12829dad108.html
<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>
waitInterval=window.setTimeout("getShow("+index+");",MDelayTime);不支持 onMouseOut="clearTimeout(waitInterval);" 了,鼠标迅速移过标签不会触发标签跳转的清除Timeout函数
另外,感觉有点臃肿,今晚先结了本帖,另外100分帖等等看有没有更完善的解决之道.像网易首页那样的,你可以下载下来看看