SCRIPT5007:无法设置属性'href'的值:object为null或undefined

时间:2013-11-01 20:35:38

标签: javascript php jquery html internet-explorer

此代码不适用于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>

1 个答案:

答案 0 :(得分:2)

document.links返回带有href属性的锚点集合,如果您没有与锚点关联的href属性,则它不会将其作为集合的一部分返回。

  

links属性返回文档中所有AREA元素和锚元素的集合,其中包含href属性的值。

所以它可能是几件事:

  • 您要查找的元素的ID /名称不是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);