为什么这段javascript在Google Chrome和IE上都能工作,而在Firefox上却不能工作?
我对javascript编程非常陌生,并陷入了这个问题:我有一个div显示用flash制作的地图。此flash具有一个放大镜图标,单击该图标时,会调用此javascript:为什么这段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
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更改。