0

我正在尝试了解 js 中的全局范围,以便我可以将 var 从不同的服务器调用到网页中并使用 js 进行访问,但是这个简单的测试甚至不起作用。

远程 php 脚本“remotescript.php”包括:

<script language='javascript' type='text/javascript'>
window.myValue=5;
</script>

本地页面包括:

<div class='widget-content'>
<script language='javascript' src='remotescript.php' type='text/javascript'>
</script>
hi!
</div>
<script language='javascript' type='text/javascript'>
alert(window.myValue);
</script>

我在警报中得到“未定义”。

任何线索我做错了什么,或者这是否应该有效?
tyvmia

4

1 回答 1

4

更新:

您的外部脚本 remotescript.php 不起作用,因为它<script>里面有标签 - 您需要删除这些标签并只包含 JavaScript 代码。因此,在您的简单示例中,您的 remotescript.php 应仅包含以下行:

window.myValue=5;

或者你可以使用var

var myValue = 5;

(另请注意,您不需要language='javascript'任何脚本元素。)

问题原始版本的原始答案

如果您在作为外部脚本链接的脚本元素中包含 JS 语句,它将不起作用(这不仅适用于创建变量,它适用于任何语句)。关闭外部脚本,然后启动一个新的脚本元素:

<div class='widget-content'>
<script language='javascript' src='http://example.com/files/blockip.php' type='text/javascript'></script>
<script>
var myValue=5;
</script>
hi!
</div>
<script language='javascript' type='text/javascript'>
alert(myValue);
</script>

如果您在外部文件中声明全局变量,这也将起作用。如果多个脚本是全局变量,则它们可以访问彼此的变量。

于 2013-11-04T20:10:02.280 回答