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>
答
试试这个简单的测试,这个想法是开始之前加载您的照片交换,并不会需要测试.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>
哪个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
对于'.complete'轮询非常丑陋,而不是使用'.onload'在图像加载时得到通知。 – jfriend00 2013-03-08 21:38:56
@ jfriend00:你可能在那里回答这个问题。不使用''onload''意味着可能存在竞争条件。 – mzedeler 2013-03-08 21:39:54