我编写了一个 Chrome 扩展程序。我的background.js 文件非常大,所以我想将其分割成更小的部分,并在需要时加载指定的方法(某种延迟加载)。
我已经使用 Firefox 完成了此操作:
// ( call for load specified lib )
var libPath = redExt.basePath + 'content/redExt/lib/' + redExt.browser + '/' + libName + '.js';
var service = Components.classes["@mozilla.org/moz/jssubscript-loader;1"].getService(Components.interfaces.mozIJSSubScriptLoader);
service.loadSubScript("chrome://" + libPath);
// ( executing loaded file )
是否有可能在基于 Webkit 的浏览器中以类似的方式执行此操作?我已经找到了如何将多个 JS 文件注入(inject)到匹配页面的解决方案(使用 manifest.json
),但找不到仅用于扩展的包含 JS 文件的方法。
最佳答案
更新:此解决方案仅在您使用 list V2 时才有效。
您还可以通过此处描述的极其简单的方法来执行此操作: https://developer.chrome.com/extensions/background_pages#manifest
{
"name": "My extension",
...
"background": {
"scripts": [
"lib/fileone.js",
"lib/filetwo.js",
"background.js"
]
},
...
}
您不会执行延迟加载,但它确实允许您将代码分解为多个文件并指定它们加载到后台页面的顺序。
关于javascript - Chrome 扩展中的多个 JS 文件 - 如何加载它们?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18651620/