此代码不适用于IE,但它适用于chrome和firefox。
我收到此错误消息IE控制台:SCRIPT5007:无法设置属性'href'的值:object为null或undefined
<script>
$(document).on("ready", alternar_banner);
array_imagen = new Array(2);
array_imagen[0] = new Image(108,225);
array_imagen[0].src = "banner1.gif";
array_imagen[1] = new Image(108,225);
array_imagen[1].src = "banner2.gif";
array_url = new Array(2);
array_url[0] = 'http://www.google.com';
array_url[1] = 'https://www.yahoo.com';
contador = 0;
function alternar_banner(){
window.document["banner"].src = array_imagen[contador].src;
window.document.links["bannerref"].href = array_url[contador];
contador ++;
contador = contador % array_imagen.length;
setTimeout("alternar_banner()",6000);
}
</script>
<a name="bannerref" href="#"><img src="#" name="banner" width=108 height=225 border=0></a>
答案 0 :(得分:2)
document.links返回带有href属性的锚点集合,如果您没有与锚点关联的href
属性,则它不会将其作为集合的一部分返回。
links属性返回文档中所有AREA元素和锚元素的集合,其中包含href属性的值。
所以它可能是几件事:
bannerref
。href
属性。更新
似乎IE中的document.links
需要使用索引来引用,即ex:window.document.links[0].href
,但你不能依赖它,因为在此之前出现了更多的锚点。相反,如果这是具有名称的唯一锚点实例,请尝试使用以下内容:
document.getElementsByName("bannerref")[0].href = array_url[contador];
或将该锚点的ID设为bannerref
:
document.getElementById("bannerref").href = array_url[contador];
或者你也可以使用jquery来获取元素并为其设置属性。
并且更好地使用为setTimeout
即
setTimeout(alternar_banner,6000);