无法在javascript中获取声明的变量

时间:2010-07-13 07:50:29

标签: javascript variables global-variables

考虑包含代码script.js

的javascript文件alert(theVar);

现在,我将js文件链接到文档,如

<script type="text/javascript">
    var theVar= 'a alert';
</script>
<script type="text/javascript" src="script.js"></script> //Contains alert(theVar);

使用变量theVar,我收到警报。这很好。

何时,

<script type="text/javascript" src="script.js"></script>
<script type="text/javascript">
     var theVar= 'a alert';
 </script>

被使用,我没有收到警报。

我知道问题是由于变量,它是在加载js文件后声明的。

但是有没有办法让变量在文档中的任何地方声明?

3 个答案:

答案 0 :(得分:6)

script.js

window.onload = function() { alert ( theVar ) }

或者你最喜欢的图书馆dom ready fn,所以它会在某个事件之后而不是立即调用回调。

但是,这实际上取决于script.js具有哪种功能,到目前为止还没有指定。

答案 1 :(得分:1)

重要的一点是代码以适当的顺序执行。您应该将调用延迟到alert(theVar),直到文档完全加载为止。例如,您可以将onload事件处理程序附加到window对象。

值得注意的是,调用外部* .js文件不会影响代码的运行方式。

答案 2 :(得分:0)

简单的解决方案:

script.js包含移至body的最后一行。这样就可以使用在文档中任何一点声明的变量。

技术解决方案:

script.js内,在进行任何评估之前,先挂钩window.onload事件。结果与更简单的解决方案相同,但允许您将脚本标记保留在头部(或任何地方)。