0

此代码不适用于 IE,但适用于 chrome 和 firefox。

我收到此错误消息 IE 控制台:SCRIPT5007: Unable to set value of the property 'href': object is null or 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>
4

1 回答 1

2

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

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

所以这可能是几件事:

  • 您要查找的元素的 ID/名称不是bannerref.
  • 它没有href属性。

标记问题更新后更新

似乎document.links在 IE 中需要使用索引 ie 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

IE

   setTimeout(alternar_banner,6000);
于 2013-11-01T20:42:31.537 回答