您好我目前正在使用Firefox的Addon-SDK,我想知道是否有一种方法来导入使用DOM对象的JS文件(如窗口)到main.js代码中。我没有使用“mozIJSSubScriptLoader”,但插件不断返回所有在加载脚本中定义的dom对象为“NOT DEFINED”,我认为这应该是因为main.js代码无法访问DOM。请让我知道是否有任何其他方式来导入/加载这些js文件。提前致谢。导入在Firefox中使用DOM对象的JS文件Addon-sdk插件脚本
回答
您可以访问一个窗口是这样的:
const { getMostRecentBrowserWindow } = require('sdk/window/utils');
var aXULBrowser = getMostRecentBrowserWindow();
,或者你可以通过它们全部列举,这应该是在SDK /窗/ utils下称“somethingEnumerateSomething”
如何使用此aXULBrowser导入js?你能告诉我一个例子吗?说文件名是test.js – Vickmaniac
就像访问test.js选项卡的内容一样? – Noitidart
没有标签。只是输入一个js文件的语法 – Vickmaniac
东西根据您的在我的其他解决方案发表在此主题:
作为单独的答案发布,因为我认为解决方案是完全不同的。如果这是正确的答案,请删除我以前的解决方案。
检查了以下工作:
- Services.scriptloader.loadSubScript(uri.spec,全球);
- Components.utils.import
- 示例展示了如何使用它,并在引导你只能在或您的
startup
功能导入后:GitHubGIST :: Noitidart/_template-BootstrapJSM.xpi - MDN :: Components.utils.import
- 示例展示了如何使用它,并在引导你只能在或您的
我已经尝试过“mozlJSSubScriptLoader”,并且在我的问题中也提到了这一点。它只能包含.jsm文件而不是.js – Vickmaniac
@MojoJojo是否像这样使用它:https://code.google。com/p/js-macosx/source/browse/trunk/demo/macosx%40mozilla.js/bootstrap.js#9 var uri = o.Services.io.newURI(src,null,o.Services.io.newURI (__SCRIPT_URI_SPEC__,null,null)); o.Services.scriptloader.loadSubScript(uri.spec,global);'它应该工作 – Noitidart
没有尝试过这种方式。它只适用于重新启动的插件,还是适用于Addon-SDK?因为当我尝试这个时,我得到一个错误,说“__SCRIPT_URI_SPEC__未定义” – Vickmaniac
- 1. wordpress在插件中使用.js脚本
- 2. 在Firefox插件中使用Html DOM?
- 3. Firefox插件或greasemonkey脚本插入javascript
- 4. 在Firefox插件内容脚本中访问窗口对象?
- 5. 从Firefox插件中的内容和页面脚本访问在主插件脚本中定义的对象
- 6. 如何在脚本中使用其他JS文件中定义的对象#
- 7. 扫描文本文件导入对象
- 8. 如何在html文件中插入节点js脚本
- 9. 插入jquery脚本文件
- 10. 在JS脚本中导入js模块
- 11. 在DOM中插入脚本URL(hashtag)
- 12. 使用js对象或插件
- 13. 使用WebExtensions在Firefox插件中创建未修改的对象
- 14. 在脚本标记中使用导入的对象(来自servlet)
- 15. 在文本文件中写入对象
- 16. 如何检查firefox插件中的DOM?
- 17. 导入js文件
- 18. 添加脚本DOM,在文本框用户插入
- 19. 在导入的文件中调用主脚本中的函数
- 20. PHP脚本导入文件在MySQL
- 21. 从Firefox插件调用COM对象
- 22. 在Firefox中使用ASV插件时访问SVG DOM
- 23. 导入文本文件到SQL Server使用批量插入
- 24. 面向在操作脚本中使用flex builder插件在Eclipse中导入mxml文件的问题
- 25. 如何在vue加载程序组件中导入JS脚本?
- 26. 在Firefox中,使用Javascript写入文件?
- 27. 在Greasemonkey脚本中使用jQuery插件
- 28. DOM的Firefox边栏和文档对象
- 29. 如何使用wp_enqueue_script从WordPress插件导入脚本和样式
- 30. 在.js文件中插入php代码
为什么你需要访问ent ire在main.js JS文件?通常你会在contenct脚本中的这些对象上执行任何代码,然后将结果传递给main.js – willlma
那么我已经声明和启动了这些文件中的几个变量,我需要使用main.js文件中的变量。如果无论如何只能单独使用可变参数,那也是可行的。这里的问题是,main.js不接受DOM对象,这就是为什么我的插件返回该窗口未定义,并且contentScriptFile也无法访问SDK模块。 。所以我不能使用require和获取组件导入和导入文件使用mozIJSSubScriptLoader – Vickmaniac
我认为最好的解决方案将是只传递你需要从DOM对象到main.js使用port.emit而不是尝试传递整个DOM对象。 – willlma