我的应用程序中发生了一些非常奇怪的事情。
我需要通过$.getScript加载一个JS,因为我需要动态加载它。
如果我通过 html 加载它
<script src="http://otherproject/project/test.js"></script>
一切正常。
但是,如果我通过 $.getScript(http://otherproject/project/test.js) 加载它
我收到未定义不是函数
错误。
这是我的 JS
测试.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…..
我不知道如何解决这个问题,因为我的大脑现在真的很煎熬。谁能帮我解决这个问题吗?非常感谢!
最佳答案
这是一个简写的 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 ] )
<-- 链 promise 进行更多回调。或者自己编写。
$.getScript(http://otherproject/project/test.js)
^ 这没有使用回调并且不正确,因为您的 URL 参数不是 String 类型。因此为什么你的代码不知道其中的函数是什么......
关于javascript - 如何通过ajax加载JS文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27974881/