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

时间:2011-08-13 15:33:10

标签: javascript jquery

大多数时候我们在html head标签中包含脚本标记。像

 <Head>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.5.2/jquery.min.js"></script>
</head>

我希望我不想包含js文件路径而我需要以编程方式下载js由jquery。就像我将从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做。

2 个答案:

答案 0 :(得分:3)

我认为你想要在程序上添加脚本。 以下机制允许呈现引擎立即呈现和显示HTML中定义的初始视图,同时仍然加载和执行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 /)

答案 1 :(得分:2)

以下代码将解决您的问题

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