我正在制作一个带有选项页面的 Chrome 扩展程序(在我的清单中声明)。我在一个单独的文件中有一个像这样定义的对象:
function MyObject() {
…
}
我使用“导出”它:
window.MyExtension = {};
window.MyExtension.MyObject = MyObject;
然后我可以使用以下方法在我的扩展主文件中构造其他对象:
new MyExtension.MyObject();
它工作正常。
但我想在我的选项页面中使用这个对象。我看到脚本没有加载,所以我尝试创建一个脚本标签并将其附加到正文中。因为我可以看到 console.log() 输出,所以脚本被执行,但我无法在我的选项页面中使用“new MyObject”构造一个对象。我怀疑这是因为沙盒或类似的东西,脚本中定义 MyObject 的窗口对象不应该与我的选项页面中的相同。
但是我怎么能得到对 MyObject 的引用呢?但是,我可以复制粘贴我需要的代码并且它会工作,但是 DRY 呢……我不敢相信没有好的方法可以做到这一点。
希望我解释得很好。谢谢,
cGuille.