我对javascript编程很陌生,并且陷入了这个问题:我有一个div显示用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');

09-07 06:29