【问题标题】:Access to global variables with script loader injected scripts使用脚本加载器注入脚本访问全局变量
【发布时间】:2012-01-31 04:51:31
【问题描述】:

我正试图围绕使用异步脚本加载器(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 已在其自己的标签上方为我的两个脚本注入了 &lt;script&gt; 标签。我的问题是:使用 yepnope 加载的 2 个脚本是否可以访问 important_stuff 全局变量,即使它们被注入到定义的位置之上?谢谢。

【问题讨论】:

    标签: javascript dynamic-script-loading


    【解决方案1】:

    所有全局变量都是全局的。一旦它被加载和定义,它就可用于当时存在的所有内容或稍后加载的所有内容。所以,重要的是加载顺序是什么,而不是脚本标签的插入位置。

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

    【讨论】:

    • 感谢您的快速且内容丰富的回复。我很感激。
    猜你喜欢
    • 1970-01-01
    • 2020-01-19
    • 2016-03-03
    • 2022-01-21
    • 2016-09-23
    • 2012-05-25
    • 2016-03-29
    • 2020-01-14
    • 2013-10-06
    相关资源
    最近更新 更多