2011-01-12 80 views
1

我很新的JavaScript編程,並陷入了這個問題:我有一個div顯示用flash製作的地圖。這閃光設有一個放大鏡圖標,該按鈕時,調用此javascript:爲什麼這段JavaScript可以在谷歌瀏覽器和IE瀏覽器上運行,但不能在Firefox瀏覽器上運行?

function turnMap() 
{ 
    DivSwitcher(map.id); 
    DivSwitcher(rightcolumn.id); 
    DivSwitcher(leftcolumn.id); 
} 

function DivSwitcher(layer) 
{ 
    if (document.getElementById(layer).style.display != "none") 
     document.getElementById(layer).style.display = "none"; 
    else 
     document.getElementById(layer).style.display = "block"; 
} 

所有所謂的div確實存在,但與地圖ID的DIV設置與display: none。在IE和Chrome上,這段代碼工作的很好:divs隱藏或顯示,但在Firefox上,它不會發生。我試着用Firebug處於運行狀態,看看會發生什麼:

地圖沒有定義

如果你們可以給我,我將不勝感激的任何線索。

+2

根據你的代碼 - 沒有定義映射。什麼是變量映射?右列和左列相同。 – 2011-01-12 16:28:15

+0

這是divs ...我使用divs ID來檢索它們,然後執行style.display更改。 – 2011-01-12 16:32:10

回答

3

這是因爲JavaScript變量map沒有在當前範圍中定義,這就是我可以從您的代碼中知道的。

我的猜測是你試圖訪問一個元素通過調用它的名字,這是不支持的。也許你可以嘗試:

DivSwitcher('map'); 
    DivSwitcher('rightcolumn'); 
    DivSwitcher('leftcolumn'); 
相關問題