为什么这段javascript在Google Chrome和IE上都能工作,而在Firefox上却不能工作?

为什么这段javascript在Google Chrome和IE上都能工作,而在Firefox上却不能工作?,javascript,html,firefox,Javascript,Html,Firefox,我对javascript编程非常陌生,并陷入了这个问题:我有一个div显示用flash制作的地图。此flash具有一个放大镜图标,单击该图标时,会调用此javascript: function turnMap() { DivSwitcher(map.id); DivSwitcher(rightcolumn.id); DivSwitcher(leftcolumn.id); } function DivSwitcher(layer) { if (document

我对javascript编程非常陌生,并陷入了这个问题:我有一个div显示用flash制作的地图。此flash具有一个放大镜图标,单击该图标时,会调用此javascript:

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上,这段代码都运行得很好:div可以根据我的需要隐藏或显示,但在Firefox上却没有。我试着和FireBug一起跑步,看看会发生什么:

地图未定义


如果你们能给我任何线索,我将不胜感激。

这是因为JavaScript变量
map
未在当前范围内定义,这就是我从您的代码中所能知道的

我的猜测是,您试图通过调用某个元素的名称来访问该元素,这是不受支持的。也许你可以试试:

    DivSwitcher('map');
    DivSwitcher('rightcolumn');
    DivSwitcher('leftcolumn');

基于您的代码,映射未定义。什么是变量映射?左右列相同。这是divs。。。我使用divs id检索它们,然后执行style.display更改。