2011-02-24 53 views
0

这可以在Chrome,Firefox等中正常工作,但不能在IE7中正常工作。我在第16行得到一个错误:“对象不支持这个动作”。它似乎在这一行失败:image0.href ='http://www.google.com';image#.href在ie7中保持失败。这是为什么?

if (document.images) { 
image0 = new Image; 
image1 = new Image; 
image2 = new Image; 
image3 = new Image; 
image4 = new Image; 
image5 = new Image; 
image6 = new Image; 
image7 = new Image; 
image8 = new Image; 

image0.src = '\/images\/image1.jpg' ; 
image0.href = 'http://www.google.com'; 
image1.src = '\/images\/image2.jpg'; 
image1.href = 'http:\/\/www.google.com'; 
image2.src = '\/images\/image3.jpg'; 
image2.href = 'http:\/\/www.google.com'; 

image3.src = 'images\/image4.jpg'; 
image3.href = 'http:\/\/www.google.com'; 
image4.src = 'images\/image5.jpg'; 
image4.href ='http:\/\/www.google.com'; 
image5.src = 'images\/image6.jpg'; 
image5.href = 'http:\/\/www.google.com'; 

image6.src = 'images\/image7.jpg'; 
image6.href ='http:\/\/www.google.com'; 
image7.src = 'images\/image8.jpg'; 
image7.href = 'http:\/\/www.google.com'; 
image8.src = 'images\/image9.jpg'; 
image8.href = 'http:\/\/www.google.com'; 

} else { 
image0 = ''; 
image1 = ''; 
image2 = ''; 
image3 = ''; 
image4 = ''; 
image5 = ''; 
image6 = ''; 
image7 = ''; 
image8 = ''; 
document.rollimg = ''; 
document.rollimg2 = ''; 
document.rollimg3 = ''; 
} 
+0

我错过了什么吗?为什么你要在图像中指定一个href?据我所知,href不是img的属性。 – canon

回答

0

财产src是正确的。酒店href不存在:图像不是链接。 Firefox和/或Chrome可能会默默地忽略这一点,但它是无效的。

请参阅this thread

此外,没有理由逃避正斜杠。

+0

好吧,我很高兴IE是胡思乱想,让我重新思考我的代码!谢谢! :) – steph

+0

@steph:没问题!为了其他SO用户的利益,如果您觉得它是正确的,请“接受”答案。 –

2
image0 = new Image; 

构造函数是功能

image0 = new Image(); 

图片不具有href属性,所以这是没有意义的:

image0.href = 'http://www.google.com'; 

而且东西是有害的,而不是坏了。

image0 = new Image; 
image1 = new Image; 
image2 = new Image; 

使用数组!

image0.src = '\/images\/image1.jpg' ; 

/字符在一个字符串JS没有特殊含义,它并不需要进行转义。

image0 = new Image; 

Globals is evil。使用范围变量。

var image0 = new Image; 

...并将它们限制在对您需要做的事情有意义的最窄范围内。

+0

啊,非常感谢你的建议!我是一个总的JavaScript新人,你们可以看到哈哈。得到它的工作:-) – steph

+0

我喜欢你最后的例子完全矛盾你在同一篇文章中的初步建议。 –

+0

它专注于一个特定的问题,而不是之前提到的所有内容。 – Quentin