2013-11-01 94 views
0

此代碼不適用於IE,但它在Chrome和Firefox上執行。SCRIPT5007:無法設置屬性'href'的值:對象爲空或未定義

我收到此錯誤信息IE控制檯:SCRIPT5007:無法設置屬性「href」屬性的值:對象爲空或未定義

<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

相關的HTML代碼丟失。 –

+0

在DOM中是否存在與「bannerref」標識的鏈接?如果存在,是否存在href標記? – Krishna

回答

2

document.links返回錨的集合與href屬性,如果你沒有與錨點關聯的href屬性,它不會將其作爲集合的一部分返回。

links屬性返回文檔中具有href屬性值的所有AREA元素和錨點元素的集合。

所以它可能是兩件事情:

  • 你正在尋找的元素的ID /名稱不bannerref
  • 它沒有href屬性。

更新標記的問題,更新後

好像需要用指數即前被稱爲document.links在IE:window.document.links[0].href但你不能靠,既然有culd是之前出現更多的錨。相反,嘗試使用下面如果是錨的名稱的唯一實例:

document.getElementsByName("bannerref")[0].href = array_url[contador]; 

或給該主播bannerref一個id:

document.getElementById("bannerref").href = array_url[contador]; 

,或者您也可以使用jQuery來獲取元素併爲其設置屬性。

,並更好地利用給函數引用的做法setTimeout

setTimeout(alternar_banner,6000); 
+0

OP顯然使用jQuery,爲什麼不使用它呢? – Teemu

+0

感謝所有。 PSL,我做了你的建議,現在它的工作。 就像你說的,我給和ID並使用getElementById,非常感謝你的提示。 – user2946332

相關問題