Javascript 如何在Chrome扩展中同步执行外部js文件
我正在开发一个chrome扩展。扩展使用至少十个javascript文件。所有JS文件都包含在background.html中,以便执行Javascript 如何在Chrome扩展中同步执行外部js文件,javascript,jquery,google-chrome-extension,Javascript,Jquery,Google Chrome Extension,我正在开发一个chrome扩展。扩展使用至少十个javascript文件。所有JS文件都包含在background.html中,以便执行 <script type="text/javascript" src="../lib/jquery.js"> <script type="text/javascript" src="../lib/one.js"></script> <script type="text/javascript" src="../lib/t
<script type="text/javascript" src="../lib/jquery.js">
<script type="text/javascript" src="../lib/one.js"></script>
<script type="text/javascript" src="../lib/two.js"></script>
.
.
.
.
<script type="text/javascript" src="../lib/ten.js"></script>
您可以创建一个可以在
two.js
中调用的名称空间函数,如下所示:
window.App = App || {};
var myAjaxFunction = function myAjaxFunction() {
return $.ajax({...include ajax stuff here...})
.success(function(data) {
...//do something...
})
.fail(function(error) {
...//handle error
});
};
App.ajaxPromise = myAjaxFunction();
然后在two.js
中,类似于你现在的样子来解决它,比如:
$.when(App.ajaxPromise)
.then(function(data) {
...//do more stuff
});
希望这有帮助。最好的。您可以创建一个名称空间函数,可以在
two.js
中调用该函数,如下所示:
window.App = App || {};
var myAjaxFunction = function myAjaxFunction() {
return $.ajax({...include ajax stuff here...})
.success(function(data) {
...//do something...
})
.fail(function(error) {
...//handle error
});
};
App.ajaxPromise = myAjaxFunction();
然后在two.js
中,类似于你现在的样子来解决它,比如:
$.when(App.ajaxPromise)
.then(function(data) {
...//do more stuff
});
希望这有帮助。最好。你能利用从
one.js
到two.js
的承诺或延迟吗?R.A.卢卡斯,我对js不熟悉,不知道这些概念,让我来看看,然后试试。谢谢。您能展示一下您正在等待的xhr代码是什么样子吗?function myFunction(){$.ajax({url:chrome.extension.getURL(../../data.json)),数据类型:“json”,beforeSend:function(xhr){xhr.overrideMetype(“text/plain;charset=x-user-defined”);}).success(function(widgetJson){//some code}).fail(function(jqXHR,textStatus){//some code});}
你能利用从one.js
到two.js
的承诺或延迟吗?R.A.卢卡斯,我对js不熟悉,也不知道这些概念,让我检查一下,试试看。谢谢。您能展示一下您正在等待的xhr代码是什么样子吗?function myFunction(){$.ajax({url:chrome.extension.getURL(../../data.json)),数据类型:“json”,beforeSend:function(xhr){xhr.overrideMetype(“text/plain;charset=x-user-defined”);}).success(函数(widgetJson){//some code}).fail(函数(jqXHR,textStatus){//some code});}
上述解决方案没有帮助。现在,我不再使用JSON,而是将所有数据放在JS文件中,这样我就可以引用JS对象&无需阅读JSON。好的,因为它是一个扩展,您可能需要使用消息传递在脚本之间进行通信,请查看此文档:上述解决方案没有帮助。现在,我不再使用JSON,而是将所有数据放在JS文件中,这样我就可以引用JS对象&无需阅读JSON。好的,因为它是一个扩展,您可能需要使用消息传递在脚本之间进行通信,请查看以下文档: