【问题标题】:Why does this piece of javascript work on both Google Chrome and IE but not in Firefox?为什么这段 javascript 可以在 Google Chrome 和 IE 上运行,但不能在 Firefox 上运行?
【发布时间】:2011-01-13 00:31:43
【问题描述】:

我对 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 运行看看会发生什么:

地图未定义

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

【问题讨论】:

  • 根据您的代码 - 未定义映射。什么是可变映射?左右列相同。
  • 这是 div ... 我使用 div id 来检索它们,然后执行 style.display 更改。

标签: javascript html firefox


【解决方案1】:

这是因为 JavaScript 变量 map 没有在当前作用域中定义,而这就是我从你的代码中可以看出的全部内容。

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-06-26
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多