例如,假设我的HTML
中有以下内容<script src="/socket.io/socket.io.js"></script>
该脚本定义了一个名为socket的变量。紧接着我有以下
<script src="/javascripts/script.js" type="text/javascript"></script>
在script.js中,我尝试访问套接字并获取未定义的错误。但是,如果我使用内联脚本,我可以访问该变量。如何从script.js中访问“socket”?
答案 0 :(得分:2)
JavaScript本身没有“包含”。
在加载文件后立即在全局范围中声明在JS文件顶层声明的任何变量,即在使用<script>
标记的位置。
请注意,defer
标记上加载了<script>
属性的脚本可能不会立即加载,因此其中声明的任何变量都不会立即可用。
使用var
关键字内部回调函数声明的变量不会出现在全局范围内。所以在这段代码中:
var a = 1;
$(document).ready(function() {
var b = 1;
});
a
将在全球范围内,但b
不会。
在此代码中:
$(document).ready(function() {
c = 1;
});
c
将处于全局范围内(因为它未使用var
关键字声明),但不会在调用回调函数之前 >
答案 1 :(得分:0)
您在哪里定义这些脚本?它们是否在头上?如果是这样,您应该能够在脚本之间访问变量......