现在我把个页面的JS,主要是用于缩放图片的JS函数:function wa_setImgAutoSize(n,x,y),搬了进来。该站正在自己的电脑上测试。测试生成的HTML代码为:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> 
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>千手观音-舞蹈类</title>
<meta name="Keywords" content="" />
<meta name="Description" content="" />
<link href="/newcss/site.css" type="text/css" rel="stylesheet" />
<script language="javascript">
function wa_setImgAutoSize(n,x,y){
var img=n;
var MaxWidth=x;
var MaxHeight=y;
var HeightWidth=img.offsetHeight/img.offsetWidth;
var WidthHeight=img.offsetWidth/img.offsetHeight;
if(img.readyState!="complete")return false;
if(img.offsetWidth>MaxWidth){
img.width=MaxWidth;
img.height=MaxWidth*HeightWidth;
}
if(img.offsetHeight>MaxHeight){
img.height=MaxHeight;
img.width=MaxHeight*WidthHeight;
}
}
</script>
</head>
<body>
<div id="divbody">
<div id="c_all">
<div class="left wid655px" style="background:#ffffff;">
<div class="szyy_list_h1">
<ul>
 <script language="JavaScript" type="text/javascript">
<!--
function showtab(m,n,count,x){
var strPic="#ecd3ab url(../newimg/pic/bg4.gif) repeat-x 0px 1px;";
var strPicx="#eeeeee";
for(var i=1;i<=count;i++){
if (i==n){
getObject(m+'_'+i).style.background=strPic;
getObject('tab_'+m+'_'+i).style.display='block';
}
else {
getObject(m+'_'+i).style.background=strPicx;
getObject('tab_'+m+'_'+i).style.display='none';
}
}
}
function getObject(objectId) {
 if(document.getElementById && document.getElementById(objectId)) {
// 获取对 ID 标签属性为指定值的第一个对象的引用。
return document.getElementById(objectId);
 } else if (document.all && document.all(objectId)) {
// 返回对象所包含的元素集合的引用。
return document.all(objectId);
 } else if (document.layers && document.layers[objectId]) {
// document.layers判断NETSPACE浏览器.document.all判断IE浏览器
return document.layers[objectId];
 } else {
return false;
 }
} // getObject
//-->
 </script>
<li id="8_1" 
 style="CURSOR: pointer" onMouseOver="showtab(8,1,3)"><a href="#">艺员信息</a></li>
<li id="8_2" 
 style="CURSOR: pointer" onMouseOver="showtab(8,2,3)"><a href="#">相关视频</a></li>
<li id="8_3" 
 style="CURSOR: pointer" onMouseOver="showtab(8,3,3)"><a href="#">同类艺员</a></li>
</ul>
</div>
<div class="left wid655px bord1">
<div id="tab_8_1" style="display:block;min-height:410px;height:410px;"><table><tr><td><img width="595" height="384" style="FILTER:revealTrans(duration=2,transition=20);" src="" id="pic" name="bannerADrotator" onload="wa_setImgAutoSize(document.all.pic,595,384);" />
 </td></tr><tr><td> <script language="javascript">
var imagesrc=new Array();//设置图片播放组的值;
var a="图片1|/UpFiles/Picture/200709/2007092011025798869.jpg|/UpFiles/Picture/200709/2007092011025798869.jpg|||图片2|/UpFiles/Picture/200709/2007092011025890976.jpg|/UpFiles/Picture/200709/2007092011025890976.jpg|||图片3|/UpFiles/Picture/200709/2007092011025875076.jpg|/UpFiles/Picture/200709/2007092011025875076.jpg|||图片4|/UpFiles/Picture/200709/2007092011025842569.jpg|/UpFiles/Picture/200709/2007092011025842569.jpg|||图片5|/UpFiles/Picture/200709/2007092011025866849.jpg|/UpFiles/Picture/200709/2007092011025866849.jpg";//取得图片数据
var arr = a.split("|||");//把图片数据按里面的'|||'分隔开
for(var i=0; i<arr.length; i++){//这里是把图片数据按|分出来取第三个值给imagesrc;
    var imgs = arr[i].split("|");
    imagesrc[i]=imgs[2];
document.write(" <span class=\"spic\"> <a href=\"javascript:seeBig('"+imgs[2]+"')\" style=\"cursor:pointer;\"> <img src=\""+imgs[2]+"\" name=\"pic0\" width=\"218\" height=\"145\" border=\"0\" id=\"pic0\" onload=\"wa_setImgAutoSize(document.all.pic0,218,145);\"> </a> </span>");
}
</script>
<script language="javascript">
var index_image=0;
var curId = 0;
var maxId = imagesrc.length;
function Page(id)
{
       curId += id;
       if ( curId < 0 )
              curId = 0;
       if ( curId > maxId-1 )
              curId = maxId-1;
              
       document.getElementById("pic").src = imagesrc[curId];
}var preloadedimages=new Array(); 
for (i=0;i<imagesrc.length;i++){ 
preloadedimages[i]=new Image(); 
preloadedimages[i].src=imagesrc[i]; 
} function setTransition(){ 
if (document.all){ 
bannerADrotator.filters.revealTrans.Transition=Math.floor(Math.random()*23); 
bannerADrotator.filters.revealTrans.apply(); 

} function playTransition(){ 
if (document.all) 
bannerADrotator.filters.revealTrans.play() 
} function nextAd(){ 
if(index_image<imagesrc.length-1)index_image++ ; 
else index_image=0; 
setTransition(); 
document.images.bannerADrotator.src=imagesrc[index_image]; 
playTransition(); 
theTimer=setTimeout("nextAd()", 5000); 

function seeBig(thispic) {
document.images.bannerADrotator.src=thispic; 
}
function playpic(x){
clearTimeout(theTimer)
setTimeout("nextAd()", x); 
}</script>
<SCRIPT language=JavaScript>nextAd()</SCRIPT>
</td></tr></table></div>
<div class="hackbox2" id="tab_8_2" style="display:none;">暂无内容!<p style="height:420px;"></p></div>
<div class="hackbox2" id="tab_8_3" style="display:none;" >
<span><img height="131" width="190" src="/UpFiles/Picture/200708/200782094507595.jpg" /></span>
<span><ul>
<li><a href="/Photo/ShowInfo.asp?ID=55" target="_blank" title="肩上芭蕾--曾获国际金奖"><h4>肩上芭蕾--曾获国际金奖</h4></font></a></li>
<li>艺员简介:1男1女,曾获国际金奖,2003年中央电视台春节联欢晚会节目之一。多次出访东南亚各国演出,获得一致好评。在头顶和肩上翩翩起舞,技术难度非常高,给观众以美的艺术享受。</li>
</ul>
</span>
</div>
<div class="szyy_info_n">
<div>
<span style="font-weight:bold;color:#ce0000;">千手观音[舞蹈类]</span>
<p>红星舞蹈队 <BR>艺员简介:女,所有成员来源于省级艺术院校舞蹈专业的精英,青春靓丽,基本功扎实,演艺精湛,无论是中国传统民族舞、古典舞,&nbsp;还是国外民族舞、风情舞,现代劲舞、当代舞,均可出色演绎。</p>
<ul><li><img src="/Images/info-up.gif" width="11" height="13" /></li><li><b>上一组:</b><a href="/Photo/ShowInfo.asp?ID=55" title="肩上芭蕾--曾获国际金奖">肩上芭蕾--曾获国际金奖</a></li></ul>
<ul><li><img src="/Images/info-up.gif" width="11" height="13" /></li><li><b>下一组:</b>没有了</li></ul>
                </div> </div>
</div>
</div>
</div></div>
</body>
</html>
但是发现:wa_setImgAutoSize函数没有在图片ID为pic和pic0上起效。而且页面也没有错误输出。都不知道错在哪里?

解决方案 »

  1.   

    Debug 跟一下就知道那少东西了。  
      

  2.   

    IE没有 问题啊你是在FF下吗? document.all.pic  is IE  only 
      

  3.   

    最终这问题自己在调试的时侯,发现了错误所在。
    <script language="javascript">
    function wa_setImgAutoSize(n,x,y){
    var img=n;
    var MaxWidth=x;
    var MaxHeight=y;
    var HeightWidth=img.offsetHeight/img.offsetWidth;
    var WidthHeight=img.offsetWidth/img.offsetHeight;
    if(img.readyState!="complete")return false;
    if(img.offsetWidth>MaxWidth){
    img.width=MaxWidth;
    img.height=MaxWidth*HeightWidth;
    }
    if(img.offsetHeight>MaxHeight){
    img.height=MaxHeight;
    img.width=MaxHeight*WidthHeight;
    }
    }这个JS函数,在设置图片比例缩放时,我在后文的HTML里,为应用该函数的图片,设置了width=""和height=""都设置了一个值或者空值,这个JS函数在执行时就按这个尺寸去应用,所以出错了,我在应用的图片上,把这两个参数删去,正常。谢谢大家。