导入在火狐插件插件脚本中使用DOM对象的JS文件

Import JS files which uses DOM objects in a firefox Addon-sdk addon script

本文关键字:插件 对象 DOM JS 文件 火狐 脚本 导入      更新时间:2023-09-26
嗨,我

目前正在研究火狐插件-sdk,我想知道是否有办法将使用DOM对象(如窗口)的JS文件导入主.js代码。我确实使用了"mozIJSSubScriptLoader",但插件不断返回加载脚本中定义的所有 dom 对象为"未定义",我认为这应该是因为主.js代码无法访问 DOM。请让我知道是否有任何其他方法可以导入/加载这些js文件。提前谢谢。

您可以访问如下窗口:

const { getMostRecentBrowserWindow } = require('sdk/window/utils');
var aXULBrowser = getMostRecentBrowserWindow();

或者你可以枚举它们,这应该是 sdk/window/utils 中称为"somethingEnumerateSomething"的东西。

根据您在本主题中发布的其他解决方案中的评论:

作为单独的答案发布,因为我认为解决方案完全不同。如果这是正确答案,请删除我以前的解决方案。

查看以下内容:

  • Services.scriptloader.loadSubScript(uri.spec, global);
    • MDN :: mozIJSSubScriptLoader
  • Components.utils.import
    • 示例显示如何使用它,并且在引导程序中,您只能在startup函数中或之后导入:GitHubGIST :: Noitidart/_template-BootstrapJSM.xpi
    • MDN :: Components.utils.import