使用脚本加载程序注入的脚本访问全局变量

Access to global variables with script loader injected scripts

本文关键字:脚本 访问 注入 全局变量 程序 加载      更新时间:2023-09-26

我正试图了解使用异步脚本加载程序(head.js、yepnope等)的一个特殊细节

<body>
    <script type="text/javascript" scr="yepnope.js"></script>
    <script type="text/javascript">
        var important_stuff = { "key" : "value", "another key" : "value"};
        yepnope([
            { load: "some/script.js" },
            { load: "another/script.js" }
        ]);
    </script>
</body>

当我在Firebug中检查该页面的HTML时,我注意到yepnope在其自己的标记之上为我的两个脚本注入了<script>标记。我的问题是:加载了yepnope的2个脚本是否可以访问important_stuff全局变量,即使它们是在定义的位置之上注入的?谢谢

所有全局变量都是全局变量。一旦加载并定义了它,它就可以用于当时存在的所有东西,也可以用于以后加载的所有东西。因此,重要的只是加载顺序,而不是脚本标记插入的位置。

如果两个动态加载的脚本是在定义全局变量后顺序加载的,那么无论脚本标记的顺序如何,它们都可以访问全局变量。