Javascript 从自执行函数调用setInterval

Javascript 从自执行函数调用setInterval,javascript,setinterval,firefox4,Javascript,Setinterval,Firefox4,以下调用setInterval的方法在Firefox3.5和Chromium 10.0中似乎有效,但在Firefox4中不起作用 var setInterval; (function runmenow () { setInterval(function () { document.write('hello<br />'); }, 1000); }()); Firebug告诉我setInterval不是一个函数。为什么setInterval在此上下文中不可用?我认为这是因为您在第

以下调用setInterval的方法在Firefox3.5和Chromium 10.0中似乎有效,但在Firefox4中不起作用

var setInterval;
(function runmenow () {
  setInterval(function () { document.write('hello<br />'); }, 1000);
}());

Firebug告诉我setInterval不是一个函数。为什么setInterval在此上下文中不可用?

我认为这是因为您在第一行中将setInterval设置为null

只要做:

//var setInterval; <--remove
(function runmenow () {
  setInterval(function () { document.write('hello<br />'); }, 1000);
}());

您不能在初始页面加载后使用document.write,或者您想在整个页面上进行写入。@epascarello,这不是q中的问题,但这可能是一个问题issue@epascarello我只使用document.write作为一个玩具示例,问题似乎与此无关。但是,是的,您是正确的。var setInterval将setInterval设置为未定义,而不是null对不起,但是删除var定义似乎没有帮助。在没有定义的情况下,setInterval仍然适用于Chrome,但不适用于Firefox4。但是,如果没有var定义,Firebug不会给出错误。@Matti,不知道该告诉你什么