"未定义" Firefox中的javascript错误

时间:2012-06-22 12:20:09

标签: javascript firefox

我是JS的新手,并且明白我的脚本可能很糟糕,但它在Safari和Chrome中运行良好,而不是在Firefox中。

除此之外,我正在调用两个函数来隐藏和显示一个自定义的Quicktime电影控制器,在它的顶部放置一个“面具”(我知道切换将是一个更优雅的解决方案,但我不能得到这样的功能以我想要的方式工作)。无论如何,这就是Javascript的样子:

function revealControls(){
      document.getElementById("controlsCover");
      controlsCover.style.display ="none"
}

function hideControls(){
       document.getElementById("controlsCover");
       controlsCover.style.display ="block"
}

我正在调用这些函数,并将不同的鼠标事件应用于各种div,例如:

<div id = "controls" onmouseout = "hideControls()">

Firefox正在告诉我

 "Error: controlsCover is not defined", 

我不知道如何将元素定义为null。

任何帮助将不胜感激。我确信这很简单 - 但我几乎没有使用Javascript的经验。爱好。

4 个答案:

答案 0 :(得分:6)

您需要先创建controlsCover变量才能引用它。

当您第一次使用document.getElementById("controlsCover")时,这将返回一个HTML元素,您将其传递给要使用的变量。

如果取消注释console.log - 您将看到变量内部的内容。

function revealControls()       
{
    var controlsCover = document.getElementById("controlsCover");
    /* console.log(controlsCover) */
    controlsCover.style.display ="none"
}

function hideControls() 
{
    var controlsCover = document.getElementById("controlsCover");
    controlsCover.style.display ="block"
}

答案 1 :(得分:2)

您需要将document.getElementById返回值分配给controlsCover变量:

var controlsCover = document.getElementById("controlsCover");

修正了:

function revealControls() {
    var controlsCover = document.getElementById("controlsCover");
    controlsCover.style.display ="none"
}

function hideControls() {
    var controlsCover = document.getElementById("controlsCover");
    controlsCover.style.display ="block"
}

答案 2 :(得分:0)

试试这个:

var ele =document.getElementById("controlsCover");
ele.style.display = "none";

答案 3 :(得分:0)

试试这个:

function revealControls()       
{
  var oControlsCover = document.getElementById("controlsCover");

  if (oControlsCover) {
    oControlsCover.style.display ="none";
  }
}

function hideControls() 
{
  var oControlsCover = document.getElementById("controlsCover");

  if (oControlsCover) {
    oControlsCover.style.display ="block";
  }
}