使用脚本加载器注入脚本访问全局变量

发布于 2025-01-01 06:28:22 字数 638 浏览 0 评论 0原文

我试图理解使用异步脚本加载器(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 已在其自己的标签上方为我的两个脚本注入了

I'm trying to wrap my head around a particular subtlety of using asynchronous script loaders (head.js, yepnope, etc.). I have a page setup like so:

<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>

When I inspect the resulting HTML for this page in Firebug I notice that yepnope has injected the <script> tags for my two scripts above its own tag. My question is: will the 2 scripts loaded with yepnope have access to the important_stuff global variable even though they are injected above where it is defined? Thanks.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

念﹏祤嫣 2025-01-08 06:28:22

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

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

All global variables are global. Once it's loaded and defined, it is available to everything that exists at the time or to all things that get loaded later. So, it only matters what the load order is, not where the script tags are inserted.

if the two dynamically loaded scripts are sequentially loaded after your globals are defined, then they will have access to the globals regardless of the order of the script tags.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文