在一个脚本中声明的变量在另一个脚本中未定义

时间:2014-06-17 12:29:21

标签: javascript

在我的HTML中,我有以下内容:

<script type="text/javascript" src="js/common.js"></script>
<script type="text/javascript" src="js/photos.js"></script>
<script type="text/javascript" src="js/mattes.js"></script>

在common.js中,我有:

var mattes_openings_xml;

在mattes.js中我有:

mattes_openings_xml = "<Openings><opening><item><x>7.75</x><y>1.75</y><width>4.5</width><height>6.5</height><type>rectangle</type><clipX>0</clipX><clipY>0</clipY><imgsrc></imgsrc></item></opening><opening><item><x>14</x><y>2.25</y><width>3.5</width><height>5.5</height><type>rectangle</type><clipX>0</clipX><clipY>0</clipY><imgsrc></imgsrc></item></opening><opening><item><x>2.5</x><y>2.25</y><width>3.5</width><height>5.5</height><type>rectangle</type><clipX>0</clipX><clipY>0</clipY><imgsrc></imgsrc></item></opening></Openings>"; 

在photos.js中,我有:

console.log(mattes_openings_xml);

以未定义的形式输出。

我不明白为什么会发生这种情况,因为定义mattes_openings_xml的函数(在mattes.js中)在输出它的函数(photos.js)之前被调用。

2 个答案:

答案 0 :(得分:0)

你在mattes.js之前加载photos.js,所以photos.js首先发生。只有在photos.js运行后才能定义mattes_openings_xml。

答案 1 :(得分:0)

我通过致电:

解决了这个问题
function mattes_get_xml()
{
  return mattes_openings_xml;
}