俺写了一个程序, 界面是WebBrowser滴.然后某一个触发,传入一个url到一个Javascript函数,ShowGif( url )然后我在一个img对象上设置 img.src = url注意url是一个本地文件路径, 而且是一个完全路径: d:\test\abc\def.gif然后发现有的图像可以显示,有的不可以显示(就是一个叉),有时候刚刚可以显示,等一下再次触发,又不显式了.还有一个重要问题:所有无法显示的图像只要鼠标右键,显示图片, 然后图片立马就可以显示了.
问题1. 这他妈的怎么回事.
   2.  如何模拟鼠标右键+显示图片 的操作 ( 别告诉我多次设置 img.src = url, 没用)function GifWnd( idWnd )
{
   LayerWindow.call( this, idWnd,idWnd );//继承父类LayerWindow
   this.oGifWnd = document.getElementById( idWnd );
   this.ShowGif = function( url )//就是这个函数
   {
      var oWnd = document.getElementById( idWnd );
      oWnd.style.position = "absolute";
      oWnd.style.left = 12;
      oWnd.style.top = 12;
      oWnd.style.width = 300;
      oWnd.style.height = 500;      //url = "http://img.knowsky.com/img/list/dl.gif";//好像这种网络地址没问题
      oWnd.children[0].src = url;//oWnd对象的第一个子类就是一个img
   }
}

解决方案 »

  1.   

    这个好像是微软的BUG,修改图片的路径不是全部马上生效。要不试试src="file://d:\\test\\abc\\def.gif"
      

  2.   

    回楼上: 试过了,我改成这样了: var re = /\\/g;  
     var str = url.replace(re,"\/");
     oWnd.children[0].src = "file:///" + String(str);症状依旧...........我的天那, Fuck U , Gill Bates! 
      

  3.   

    要不你完全克隆一个img元素,style都一样,src采用你希望的值,把旧的img删除掉
      

  4.   

    楼上, 我刚开始的实现就是: var oImg = document.createNode("img");
        oImg.src = url;
    oWnd.appendChild(oImg);.................................有没有其他方法?就没人遇到过吗? 如果静态的存在于html中就没有问题,可是一换src就出问题了.
      

  5.   

    不知道微软是怎么搞的,也许是因为域名不相同的原因。再提一种思路,把img放到一个iframe中,这个iframe里面全部采用本地文件。纯猜测,没有试过,祝楼主好运。
      

  6.   

    楼上你去看 洋葱电影, 我要用刀砍死 Gill Bates!
      

  7.   


    查无此人!
    好像只有Bill Gates,8月份还在北京呆过,也许你要找的是他:)
      

  8.   

    Right. force to use img.style.visibility = 'visible';
      

  9.   


    对不起有点问题, 我听错了, 其实真名实  Gil Bates. 
    乃去看一个电影: 洋葱电影没错, 杀死 Gil Bates!
      

  10.   

    不知道你这个javascript函数怎么写的,有没有捕获img元素的onload事件?
      

  11.   

    或者,在赋src属性前先设置不可见-hidden,然后赋值后设置visible
      

  12.   

    怎么刷新窗体?俺菜鸟,不会."不知道你这个javascript函数怎么写的,有没有捕获img元素的onload事件?"onload事件很有意思,您不说道罢了,说了我就要讲讲了, 俺捕获onload, 然后什么也没发生, 一个X,然后鼠标右键,按"显示图片", 一群onload冒出来了.
      

  13.   

    好了,自己解决问题了.问题的原因:  即使是本地图片 , 也需要一定时间装载图像, 如果在显示图片之前图像没有加载完毕,则图像显示一个X, 反之则图像可以正常显示, 完全要碰运气.
               又因为ie对本地图片貌似不会自动更新,所以会无法显示.解决办法:  img对象设置 onreadystatechange 完成后,使用 img.style.display = "block" . 图片正常显示.谢谢.希望后来人不走这条路.