您好我目前正在使用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