我如何筑巢包括?

时间:2014-09-15 07:22:55

标签: cross-browser include cross-platform nested crossrider

我在 extension.js 文件中使用了包含,并希望能够嵌套其他包含文件。例如:我想要包含一个文件 1.js ,其中包含 1-1.js 1-2.js ,以及然后 1-2.js 包括 1-2-1.js 1-2-2.js 。我可以使用appAPI.resources.includeJS来包含一个级别的文件 - 但我似乎无法在资源文件中使用它。

另外,为什么我不能直接包含appAPI.ready回调之外的文件?即通过简单地连接JS文件。

1 个答案:

答案 0 :(得分:2)

要先回答第二个问题,您不必使用appAPI.resources.includeJS来包含JavaScript文件,并且实际上可以将所有包含文件连接到一个文件中。但是,由于文件可以非常快速地增长,因此不建议这样做,因为每个文件限制为150K。

关于嵌套包含文件,这当然是可能的。根据您的问题采用以下示例:

<强> extension.js

appAPI.ready(function($) {
  appAPI.resources.includeJS('1.js');
});

<强> 1.js

console.log('1.js loaded, now loading 1-1.js & 1-2.js');
appAPI.resources.includeJS('1-1.js');
appAPI.resources.includeJS('1-2.js');
console.log('Done');

<强> 1-1.js

console.log('1-1.js loaded');

<强> 1-2.js

console.log('1-2.js loaded, now loading 1-2-1.js & 1-2-2.js');
appAPI.resources.includeJS('1-2-1.js');
appAPI.resources.includeJS('1-2-2.js');

<强> 1-2-1.js

console.log('1-2-1.js loaded');

<强> 1-2-2.js

console.log('1-2-2.js loaded');

控制台中的结果:

1.js loaded, now loading 1-1.js & 1-2.js
1-1.js loaded
1-2.js loaded, now loading 1-2-1.js & 1-2-2.js
1-2-1.js loaded
1-2-2.js loaded
Done

[披露:我是Crossrider员工]