Javascript Global Scope无效

时间:2013-11-04 20:08:44

标签: javascript

我正在尝试理解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

1 个答案:

答案 0 :(得分: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>

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