有一段代码在除了Firefox之外的所有浏览器(IE6, IE7, Safari3, Safari4, Opera9, Chrome2.0)上运行都正常。我是想在点击图片时输出image对像的宽度
图片的这个地址不是静态图片的地址,而是重定向到另一个静态图片的地址
<img src="http://dufrog.com/test/redirect" onclick="shout(this)">shout 是在head中定义的:
function shout(c){
    a = new Image();
    a.src = c.src;
    alert(a.width);
}当我点击图片时,其它所有浏览器都输出95,只有FireFox输出0。
如果我不在shout函数中创建新对像a, 而是直接输出c.width,那么FireFox会正确输出95.
如果我不用重定向的图片地址,而是直接用静态图片的地址,那么FireFox也会正确输出95.我想知道,是什么原因造成了FireFox输出的不同?
谢谢

解决方案 »

  1.   

    对了,忘了说,我用的是FireFox 3.5.2, 
    3.5.1也试过,结果是一样的。
      

  2.   

    setTimeout(function(){alert(a.width);}, 5000);
      

  3.   

    function shout(c){
        a = new Image();
        a.src = c.src;
        a.onload=function(){alert(a.width);}
      

  4.   

    a.onload=function(){alert(this.width);} 
      

  5.   

    没用过这种写法
    function image(obj){
    this.obj=obj
    this.width=function(){
    var w=this.obj.width;
    return w;
    }
    }
    function test(obj){
    var a=new image(obj);
    alert(a.width());
    }这样的写法在firefox和ie下都有弹出高度