首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >延迟js加载joomla的Javascript数组

延迟js加载joomla的Javascript数组
EN

Stack Overflow用户
提问于 2014-11-22 00:40:27
回答 1查看 400关注 0票数 1

我推迟了在我的Joomla模板中加载一些js文件。这个很好用

代码语言:javascript
运行
复制
    <script type="text/javascript">
        function downloadJSAtOnload() {
            var element = document.createElement("script");
            element.src = "/pathto.js";
            document.body.appendChild(element);
        }
        if (window.addEventListener)
            window.addEventListener("load", downloadJSAtOnload, false);
        else if (window.attachEvent)
            window.attachEvent("onload", downloadJSAtOnload);
        else window.onload = downloadJSAtOnload;
    </script>

然而,我有十几个js文件要像这样加载,对于每个文件,我必须使用与上面相同的代码块,只是pathto.js有所不同。

我的Javascript能力简直是垃圾。是否可以将所有的js文件放入一个数组中,然后使用相同的代码块逐个遍历它们,而不必一遍又一遍地重复相同的代码块?

我想要像这样的东西

代码语言:javascript
运行
复制
    <script type="text/javascript">
        function downloadJSAtOnload() {
            var element = document.createElement("script");
            element.src = AN ARRAY OF JS FILES;
            document.body.appendChild(element);
        }
        FOR EACH ITEM IN THE ARRAY
            if (window.addEventListener)
                window.addEventListener("load", downloadJSAtOnload, false);
            else if (window.attachEvent)
                window.attachEvent("onload", downloadJSAtOnload);
            else window.onload = downloadJSAtOnload;
    </script>

感谢你在这方面的帮助!

EN

回答 1

Stack Overflow用户

发布于 2014-11-22 02:07:02

实际上,循环应该在函数中。

下面是函数应该是什么(我还没有测试过它):

代码语言:javascript
运行
复制
function downloadJSAtOnload() {
    var scripts = ["script1.js", "script2.js", "script3.js"];
    for (i = 0; i < scripts.length; i++) {
        var element = document.createElement("script");
        element.src = scripts[i];
        document.body.appendChild(element);
   }
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27066190

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档