写了个函数,是点某行的时候自动换图片的
结果很奇怪,如果我把图片的SRC赋值后弹出个ALERT点一下的话
就能正常运行,要不然的话就无法正常运行,好奇怪啊
var oldW,oldH,objIMG;
oldW=400;
oldH=400;function viewIMG(ads)
{
objIMG=document.getElementById("imgShow"); objIMG.style.width="";
objIMG.style.height="";

objIMG.src=ads;
//alert(objIMG.src);       ---如果这个不注释掉,程序就能正常运行 if (objIMG.width > oldW || objIMG.height > oldH)
{
var w,h;
w=objIMG.width/oldW;
h=objIMG.height/oldH;
//alert('新图片大于旧图片的大小');
if(w > h)
{
objIMG.style.width=oldW+"px"; }
else
{ objIMG.style.height=oldH+"px";
}
}}

解决方案 »

  1.   

    objIMG.onload = function(){
    if (objIMG.width > oldW || objIMG.height > oldH)
    {
    var w,h;
    w=objIMG.width/oldW;
    h=objIMG.height/oldH;
    //alert('新图片大于旧图片的大小');
    if(w > h)
    {
    objIMG.style.width=oldW+"px";}
    else
    {objIMG.style.height=oldH+"px";

    }
      

  2.   

    把alert(objIMG.src);
    换成:
    setTimeout("",1000);
    试试,实在不行,再增加1000的值,改成5000,试试。
      

  3.   

    var oldW,oldH,objIMG; 
    oldW=400; 
    oldH=400; function viewIMG(ads) 

    objIMG=document.getElementById("imgShow"); objIMG.style.width=""; 
    objIMG.style.height=""; objIMG.src=ads; 
    //alert(objIMG.src);      ---如果这个不注释掉,程序就能正常运行 if (objIMG.width > oldW || objIMG.height > oldH) 

    var w,h; 
    w=objIMG.width/oldW; 
    h=objIMG.height/oldH; 
    setTimeOUt("aa()",5000);
    } }
    function aa()
    {
    if(w > h) 

    objIMG.style.width=oldW+"px"; } 
    else 
    { objIMG.style.height=oldH+"px"; 
    } }
      

  4.   

    var oldW,oldH,objIMG;
    oldW=400;
    oldH=400;function viewIMG(ads)
    {
    objIMG=document.getElementById("imgShow");objIMG.style.width="";
    objIMG.style.height="";objIMG.src=ads;
    //alert(objIMG.src);      ---如果这个不注释掉,程序就能正常运行setTimeOUt("aa()",1000);--如果还不行,改成2000,3000甚至更大,试试}
    function aa()
    {
    if (objIMG.width > oldW || objIMG.height > oldH) 

    var w,h; 
    w=objIMG.width/oldW; 
    h=objIMG.height/oldH; 
    //alert('新图片大于旧图片的大小'); 
    if(w > h) 

    objIMG.style.width=oldW+"px"; } 
    else 
    { objIMG.style.height=oldH+"px"; 


    }[/Quote]
      

  5.   


    <script type="text/javascript">
            var oldW, oldH, objIMG;
            oldW = 40;
            oldH = 20;        function viewIMG(ads) {
                objIMG = document.getElementById("imgShow");            objIMG.style.width = "";
                objIMG.style.height = "";            objIMG.src = ads;
                //alert(objIMG.src);      ---如果这个不注释掉,程序就能正常运行
                objIMG.onload = function() {
                    debugger;
                    if (this.width > oldW || this.height > oldH) {
                        var w, h;
                        w = this.width / oldW;
                        h = this.height / oldH;
                        alert('新图片大于旧图片的大小');
                        if (w > h) {
                            this.style.width = oldW + "px";                    }
                        else {
                            this.style.height = oldH + "px";
                        }
                    }
                }
            }
        </script>    <img src="http://www.baidu.com/img/baidu_logo.gif" id="imgShow" alt="" 
            onclick="viewIMG('http://www.google.com/intl/en_ALL/images/logo.gif')" />
      

  6.   

    可是img 没有 onload事件啊
      

  7.   

    <img id="imgShow" name="imgShow" src="pds/news/adLiZhihong09.jpg" border="0" style="width:400px;height:295px;" class="border" onload="resetIMG(this)">
    IMG里是这样写的然后函数是这样写的var oldW,oldH,objIMG;
    oldW=400;
    oldH=400;
    function viewIMG(ads)
    {
    objIMG=document.getElementById("imgShow"); objIMG.style.width="";
    objIMG.style.height="";

    objIMG.src=ads; if (objIMG.width > oldW || objIMG.height > oldH)
    {
    var w,h;
    w=objIMG.width/oldW;
    h=objIMG.height/oldH;
    if(w > h)
    {
    objIMG.style.width=oldW+"px";
    objIMG.style.height=(parseInt(objIMG.style.height)/w)+"px";
    }
    else
    {
    objIMG.style.width=(parseInt(objIMG.style.width)/h)+"px";
    objIMG.style.height=oldH+"px";
    }
    }
    resetIMG(objIMG);
    }function resetIMG(obj)
    {
    if (parseInt(obj.style.width) > oldW || parseInt(obj.style.height) > oldH)
    {
    var w,h;
    w=parseInt(obj.style.width)/oldW;
    h=parseInt(obj.style.height)/oldH;
    if(w > h)
    {
    obj.style.width=oldW+"px";
    obj.style.height=(parseInt(obj.style.height)/w)+"px";
    //alert('W:'+objIMG.width+'--H:'+objIMG.height);
    }
    else
    {
    obj.style.width=(parseInt(obj.style.width)/h)+"px";
    obj.style.height=oldH+"px";
    //alert('W:'+objIMG.width+'--H:'+objIMG.height);
    }
    }
    }