0

我的问题是,我创建了一个 js 文件。在这个文件中定义了一些文本。

channel = {
  categorie_one: "Hauptsender",
  categorie_two: "Spartensender",
  categorie_three: "Regionalsender"
}

现在我想嵌入categorie_one另一个 js 文件。我正在使用该代码:

channel.categorie_one;

但它显示在控制台中:Cannot read property 'categorie_one' of undefined,逻辑上我已经链接了文件......

我在 index.html 中包含 js 文件

<script src="javascripts/default.js" type="text/javascript" rel="javascript"></script>
<script src="javascripts/resources.default.js" type="text/javascript"></script>

在 default.js 中,我有一个加载站点的方法。

function ChannelLoad(listview) {
     //there should be cateogrie_one
}

你能帮我吗?提前致谢

4

4 回答 4

2

在变量定义中添加分号:

channel = {
   categorie_one: "Hauptsender",
   categorie_two: "Spartensender",
   categorie_three: "Regionalsender"
};

从语法上讲,您的变量定义是一个语句;如果与其他语句排成一行(我假设在包含您的 js 文件后它将结束),它们必须用分号分隔。

于 2013-07-15T10:01:49.410 回答
1

在您的 html 文件中以正确的顺序包含脚本:

<script type="text/javascript" src="defines_object.js"></script>
<script type="text/javascript" src="uses_property.js"></script>

确保对象未在函数中定义,否则对象的范围将仅限于该函数。

于 2013-07-15T09:50:29.013 回答
0

这段代码应该可以工作。

您唯一必须注意的是包含文件的顺序,所有文件都将按照它们包含的顺序执行,因此您应该首先包含声明对象的文件,包含

channel = {
  categorie_one: "Hauptsender",
  categorie_two: "Spartensender",
  categorie_three: "Regionalsender"
}

然后包含第二个文件,使用channel.categorie_one;

如果这仍然不起作用,请发布您的整个代码,可能存在范围问题(通道在本地范围内声明)

您应该以正确的顺序包含您的脚本:

<script type="text/javascript" src="defines_object.js"></script>
<script type="text/javascript" src="uses_property.js"></script>
于 2013-07-15T09:42:30.803 回答
0

如果您在resources.default.jschannel文件中定义了变量,并且您尝试在default.js文件中访问它,则必须颠倒链接 JS 文件的顺序。

尝试:

<script src="javascripts/resources.default.js" type="text/javascript"></script>
<script src="javascripts/default.js" type="text/javascript" rel="javascript"></script>
于 2013-07-15T09:58:00.690 回答