首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何以编程方式下载JS文件

问如何以编程方式下载JS文件
EN

Stack Overflow用户
提问于 2011-08-13 23:33:10
回答 2查看 5.7K关注 0票数 2

大多数情况下,我们在html head标签中包含script标签。喜欢

代码语言:javascript
复制
 <Head>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.5.2/jquery.min.js"></script>
</head>

我希望我不想包含js文件路径,而是需要通过jquery以编程方式下载js。例如,我将通过编程方式从http://ajax.googleapis.com/ajax/libs/jquery/1.5.2/jquery.min.js下载js文件,并检查该文件是否无法下载或不存在,然后我将从我的网站下载相同的文件,如www.my-site.com/js/1.5.2/jquery.min.js。

请帮助我使用jquery来完成此操作。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-08-13 23:39:30

我认为您想要以编程方式添加脚本。下面的机制允许渲染引擎在JavaScript资源仍在加载和执行的同时立即渲染和显示以超文本标记语言定义的初始视图,从而带来更好的用户体验

代码语言:javascript
复制
      function loadScript(src, callback) {
    var head = document.getElementsByTagName('head')[0],
        script = document.createElement('script');
    done = false;
    script.setAttribute('src', src);
    script.setAttribute('type', 'text/javascript');
    script.setAttribute('charset', 'utf-8');
    script.onload = script.onreadstatechange = function() {
        if (!done && (!this.readyState || this.readyState == 'loaded' || this.readyState == 'complete')) {
            done = true;
            script.onload = script.onreadystatechange = null;
                if (callback) {
                    callback();
                }
            }
    }
    head.insertBefore(script, head.firstChild);
}

// load the my-script-file.js and display an alert dialog once the script has been loaded
loadScript('my-script-file.js', function() { ///Loaded, add your javascript here. });

当在HTML文档中发现标签时,在呈现引擎可以继续下载其他资源之前下载并执行所引用的脚本资源,这有效地阻止了标签下面的页面的呈现。为了避免这种阻塞行为,可以通过一种称为动态脚本标签注入引用(http://www.nczonline.net/blog/2009/07/28/the-best-way-to-load-external-javascript/)的机制来创建脚本标签

票数 3
EN

Stack Overflow用户

发布于 2011-08-13 23:45:07

下面的代码将会解决你的问题

代码语言:javascript
复制
 <script src="//ajax.googleapis.com/ajax/libs/jquery/1.5.2/jquery.min.js" type="text/javascript"></script>
 <script type="text/javascript">
    if (typeof jQuery == 'undefined') {
       document.write(unescape("%3Cscript src='/Scripts/jquery-1.5.2.min.js' type='text/javascript'%3E%3C/script%3E"));
    }
 </script>
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7051409

复制
相关文章

相似问题

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