加载外部JavaScript文件

Jon*_*Jon 0 javascript

我试图从JavaScript中加载外部JavaScript文件,但我似乎无法让它工作.难道我做错了什么?

我工作的样本文件

function loadJs() {
var fileref=document.createElement('script')
fileref.setAttribute("type","text/javascript")
fileref.setAttribute("src", "https://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js")
document.body.appendChild(fileref); }
Run Code Online (Sandbox Code Playgroud)

Dav*_*ing 7

也许您在完全加载之前尝试访问jQuery API.您可以将一个回调参数添加到loadJs函数,如下所示:

function loadJs(src, callback) {
    var s = document.createElement('script');
    document.getElementsByTagName('head')[0].appendChild(s);
    s.onload = function() {
        //callback if existent.
        if (typeof callback == "function") callback();
        callback = null;
    }
    s.onreadystatechange = function() {
        if (s.readyState == 4 || s.readyState == "complete") {
            if (typeof callback == "function") callback();
            callback = null; // Wipe callback, to prevent multiple calls.
        }
    }
    s.src = src;
}

loadJs('https://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js', function() {
    $('body').append('<p>It works!</p>');
});
Run Code Online (Sandbox Code Playgroud)

测试铬,FF,ie8.小提琴:http://jsfiddle.net/Umwbx/2/