2011-07-10 71 views
0

我有一些代碼允許我將鼠標懸停在多個鏈接上,隨後替換指定DIV中的內容。它適用於大多數瀏覽器,但Firefox提供了一個錯誤 - 通過刪除頁面的doctype代碼可以「修復」錯誤,但顯然這意味着代碼存在嚴重問題,並且不符合規範。鏈接懸停換行div - Firefox中的Javascript錯誤

這裏是JavaScript:

var description = new Array(); 
description[0] = "Content one"; 
description[1] = "Content two"; 
description[2] = "Content three"; 

每個鏈接看起來是這樣的,用不同的號碼:

<a onMouseOver="FeatureSwap.innerHTML = description[1];"> 

這是有其內容的DIV在徘徊改變上的一個鏈接:

<div id="FeatureSwap">Default content here</div> 

Firefox拋出的錯誤是:

FeatureSwap is not defined 
+0

歡迎堆棧溢出!記得點贊有用的答案。如果答案解決了您的問題,請記住通過檢查來選擇答案。 –

回答

1

innerHTML是DOM的一個元素的屬性,文檔對象模型。

所以你需要首先獲得訪問元素。在你的情況下,元素是帶有FeatureSwap的id的div。

在下面的代碼中,我們首先通過它的ID使用大多數所有瀏覽器通用的方法來查找元素。然後我們設置它的innerHTML屬性。

嘗試

<a onMouseOver="document.getElementById('FeatureSwap').innerHTML = description[1];"> 

僅供參考,除去你帶領火狐在"quirks mode"顯示您的網頁,而不是標準兼容模式DOCTYPE聲明。 Firefox中的notable features of quirks mode之一是元素可以通過它們的ID訪問,就好像它們是變量一樣。欲瞭解更多信息,請參閱WHATWG spec

+0

+1打我30秒。在低電量下。 :D – Shef

+0

絕對是現貨,反應非常快!謝謝:) – user837780

+0

@謝菲:是的,我知道這種感覺!感謝您的支持。問候。 –

0

嘗試:

<a onMouseOver="document.getElementById('FeatureSwap').innerHTML = description[1];"> 
+0

絕對是現貨,反應非常快!謝謝 :) – user837780