javascript - 如何通过ajax加载JS文件?

标签 javascript jquery html

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

我需要通过$.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 类型。因此为什么你的代码不知道其中的函数是什么......

jQuery Documentation for getScript

关于javascript - 如何通过ajax加载JS文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27974881/

相关文章:

javascript - 居中对齐生成的文本

javascript - 网站在 IE 中看起来很糟糕,但在 Firefox 中却很棒 - IE 不读取 javascript

javascript - 使用 AJAX 发送用户 POST 输入

python - 错误属性 %s 不是多行的

javascript - TypeError : this. getAttribute 不是函数 - javascript

javascript - jQuery iFrame 操作

javascript - 对于 ajax 响应,die 或 echo 哪个更好?

javascript - Firebase Web 版,创建用户帐户

javascript - window.open 在 IE 中使用相对 URL 失败(使用 base 标签时)

html - 如何在文本中间的 <p></p> 中使用 <h2> 标签 </h2>?