3

以下是问题脚本:

这是来自 HTML 文件:

<script type="text/javascript">
    var devices_record = "some string";
</script>
<script type="text/javascript" src="/js/foo.js"></script>

这是来自 foo.js:

function bar () {
    devices_record = "assign new string";
}

HttpFox 的错误报告是未定义 devices_record。是什么赋予了?我认为 devices_record 将是一个全局范围的变量,因此它应该可以从任何地方访问。

4

3 回答 3

3

你的测试用例对我有用。这是我的完整测试:

foo.js:

function bar () {
    alert(devices_record);
    devices_record = "assign new string";
    alert(devices_record);
}

foo.html:

<html>
<head>
    <script type="text/javascript">
    var devices_record = "some string";
    </script>
    <script type="text/javascript" src="foo.js"></script>
</head>
<body onload="bar()">
</body>

我收到两个警报,第一个说"some string",第二个"assign new string"

您的问题存在于代码中的其他地方。

于 2009-08-27T18:17:07.073 回答
1

我相信您给定的代码有效。至少执行您上面给出的代码不会导致任何错误。

此外,最好在使用任何内联 js 之前包含您的依赖项,例如 foo.js。这可确保在调用提供您的库的函数之前加载您的库。

此外,赋值运算符不会导致“设备_记录未定义”错误,因为您正在使用赋值运算符定义它。

您的错误可能是由其他原因引起的。

于 2009-08-27T18:14:21.247 回答
0

foo.js中声明devices_record。然后,从嵌入在 HTML 中的 javascript 中引用它。

您还可以考虑将您的foo.js代码包装在一个类中,并将devices_record作为字段/属性。除其他外,这可以使错误捕获更容易。

花絮:另外,如果将 devices_record 声明放在脚本包含之前,则脚本可能能够访问它。但是,请注意在使用它们的文件之外声明变量。如果您决定将该脚本包含在忘记声明 devices_record 的页面中,您将遇到错误。

于 2009-08-27T18:09:09.650 回答