javascript图像幻灯片适用于所有其他浏览器,但不适用于IE浏览器

问题描述:

我有一个图像幻灯片,可以在任何其他浏览器中使用,但不能在IE中使用 - 它只是显示主图像。请有人告诉我,我不会生气,这是一个简单的修复,我看不到。javascript图像幻灯片适用于所有其他浏览器,但不适用于IE浏览器

非常感谢

Mickeyjay。下面

代码:

<div id="image_slide"><img src="images/.......jpg" id="slideit" name="slideit" border="0"> 
<script type="text/javascript"> 
var dimages=new Array(); 
    var numImages=3; 
    dimages[0]=new Image(); 
    dimages[0].src="images/.......jpg"; 
    dimages[1]=new Image(); 
    dimages[1].src="images/.......jpg"; 
    dimages[2]=new Image(); 
    dimages[2].src="images/.......jpg"; 
var curImage=-1; 
function swapPicture() 
{ 
    if (document.images) 
    { 
    var nextImage=curImage+1; 
    if (nextImage>=numImages) 
     nextImage=0; 
    if (dimages[nextImage] && dimages[nextImage].complete) 
    { 
     var target=0; 
     if (document.images.slideit) 
     target=document.images.slideit; 
     if (document.all && document.getElementById("slideit")) 
     target=document.getElementById("slideit"); 
     if (target) 
     { 
     target.src=dimages[nextImage].src; 
     curImage=nextImage; 
     } 
     setTimeout("swapPicture()", 1500); 
    } 
    else 
    { 
     setTimeout("swapPicture()", 150); 
    } 
    } 
} 
setTimeout("swapPicture()", 1500); 
</script> 
+1

哪个IE版本?你检查了错误控制台吗?如果没有错误,您是否尝试过额外的日志/调试?另外'setTimeout(“swapPicture()”,delay)'是___evil___(参见[1](https://developer.mozilla.org/en-US/docs/DOM/window.setTimeout))。使用'setTimeout(swapPicture,delay)'。 – Zeta 2013-03-08 21:36:41

+0

对于'.complete'轮询非常丑陋,而不是使用'.onload'在图像加载时得到通知。 – jfriend00 2013-03-08 21:38:56

+0

@ jfriend00:你可能在那里回答这个问题。不使用''onload''意味着可能存在竞争条件。 – mzedeler 2013-03-08 21:39:54

试试这个简单的测试,这个想法是开始之前加载您的照片交换,并不会需要测试.complete的方式。

<html> 
    <head> 
    <title>Example</title> 
    </head> 
    <body> 

    <div id="image_slide"><img src="intro.jpg" 
     id="slideit" name="slideit" border="0"></div> 

    <script type="text/javascript"> 
    var curImage = -1; 
    var numImages = 2; 
    var dimages = new Array(); 

    function loadPictures() 
    { 
     dimages[0]  = new Image(); 
     dimages[0].src = "test1.jpg"; 
     dimages[1]  = new Image(); 
     dimages[1].src = "test2.jpg"; 

     setTimeout(swapPicture, 3000); 
    } 

    function swapPicture() 
    { 
     var nextImage = curImage + 1; 
     if (nextImage >= numImages) 
      nextImage = 0; 

     document.images.slideit.src = dimages[nextImage].src; 
     curImage = nextImage; 
     setTimeout(swapPicture, 1500); 
    } 

    setTimeout(loadPictures, 1500); 

    </script> 

    </body> 
</html>