如何通过ajax加载JS文件?

时间:2015-01-15 23:26:07

标签: javascript jquery html

我的应用程序中发生了一些非常奇怪的事情。

我需要通过$ .getScript加载JS,因为我需要动态加载它。

如果我通过像

这样的html加载它
<script src="http://otherproject/project/test.js"></script>
一切正常。

但是,如果我通过$.getScript(http://otherproject/project/test.js)

加载它

我收到undefined is not a function错误。

这是我的JS

test.js

Myproject = (typeof Myproject !== "undefined") ? Myproject : {};

Myproject.common = (typeof Myproject.common !== "undefined") ? Myproject
.common : {};

$(document).ready(function() {
    TEST = new Myproject.common.Init(); 
    // Uncaught TypeError: undefined is not a function here
});

Myproject.common.Init = (typeof Myproject.common.Init !== "undefined") ? Myproject
.common.Init : (function() {
//more codes…..

我不知道如何解决这个问题,因为我的大脑现在真的很油腻。任何人都可以帮我这个吗?非常感谢!

1 个答案:

答案 0 :(得分:1)

这是一个简写的Ajax函数,你需要使用回调,因为它是异步的

$.getScript( "ajax/test.js", function( data, textStatus, jqxhr ) {
    console.log( data ); // Data returned
    console.log( textStatus ); // Success
    console.log( jqxhr.status ); // 200
    console.log( "Load was performed." );
});

上面的示例回调结构^

jQuery.getScript( url [, success ] )&lt; - 连锁承诺提供更多回拨。或写自己的。

$.getScript(http://otherproject/project/test.js)

^这不是使用回调而且不正确,因为您的URL参数不是String类型。因此,为什么你的代码不知道它的功能是什么......

jQuery Documentation for getScript