本帖最后由 ypl_hust 于 2010-09-02 20:30:03 编辑

解决方案 »

  1.   

    图片后面加个参数,比如图片地址是
    http://www.3http.com/1pic.jpg
    改成
    http://www.3http.com/1pic.jpg?x=1111注意后面的1111改成随机数或时间,这样每次读取地址不同,就不会产生读缓存的情况下,你上面的问题就是缓存造成的。
      

  2.   

    一般产生随机数都是用时间的,new Date(),产生yyyy-mm-dd hh:mm:ss,这样的话就不容易有重复的随机数了
      

  3.   

    按您说的做,又出现了新的问题,现在每次判断ImageObject.height的时候都还没拿到图片,事实上网卡已经重启完成了(可以连上了)。我在怀疑是不是通过"ImageObject.src= src;"拿图片时需要一定的时间,在判断ImageObject.height的时候还没有拿到?那这可怎么办呢?
      

  4.   

    那就在img onload的事件中获取即可,也就是说在img加载完毕后才执行获取高度操作
      

  5.   

    如果用on load 事件的话就不用判断高度了吧,既然都已经 触发load事件了,那必然已经拿到图片了吧?
      

  6.   

    我试了用onload事件,还是不行啊,貌似总不被触发,代码如下:function tryIp() {
           var signature = + new Date();
            var src = "http://" + Ip + imgsrc + "?" + signature;
        var ImageObject = new Image();
        ImageObject.src= src;
            ImageObject.onload = imgLoaded;
    }function imgLoaded(img) {}imgLoaded 一直没被调用,事实上网卡已经重启完很久了,太奇怪了。不知道是什么原因啊?
      

  7.   

    有参不能这样调用
    function tryIp() {
           var signature = + new Date();
            var src = "http://" + Ip + imgsrc + "?" + signature;
        var ImageObject = new Image();
        ImageObject.src= src;
            ImageObject.onload = function () {imgLoaded(ImageObject));
    }function imgLoaded(img) {
    alert(img);
    }
      

  8.   

    可以写在<img src=xx onLoad="alert(this.height)" />可以这样试试。
      

  9.   

    在javascript里面能加这样的html代码吗?
      

  10.   

    JS模拟的Ping:
    http://www.etherdream.com/funnyscript/ping/ping.html
    http://www.etherdream.com/funnyscript/ping/ping2.html原理很简单。访问图片的时间与onerror发生时间之差。
      

  11.   

    顺序!
       ImageObject.src= src;
            ImageObject.onload = function () {imgLoaded(ImageObject));
    改成
            ImageObject.onload = function () {imgLoaded(ImageObject));
       ImageObject.src= src;