2014-03-03 18 views
0

我正在爲Firefox開發一個小擴展。我想在執行擴展的一部分時記錄消息。 CODE:Firefox擴展中的logStringMessage函數

var aConsoleService = Components.classes["@mozilla.org/consoleservice;1"].getService (Components.interfaces.nsIConsoleService); 
aConsoleService.logStringMessage("created"); 

這裏「創建」是消息。但是我無法在瀏覽器控制檯中看到此消息。我錯過了什麼嗎?我搜索了它,並得知您必須在about:config內啓用devtools.errorconsole.enabled。我也是這樣做的。請幫助我。

回答

1

您確定要打開瀏覽器控制檯嗎? Ctrl + Shift + J?

var {utils:Cu, interfaces:Ci} = Components; 
Components.classes["@mozilla.org/consoleservice;1"].getService(Components.interfaces.nsIConsoleService); 
consoleService.logStringMessage(text); 

也可以試試這個:

var {utils:Cu, interfaces:Ci} = Components; 
Cu.import('resource://gre/modules/Services.jsm'); 
Services.console.logStringMessage(text); 

也可以嘗試這個

var {utils:Cu, interfaces:Ci} = Components; 
Cu.import('resource://gre/modules/Services.jsm'); 
Services.appShell.hiddenDOMWindow.console.log('blah'); 

如果你使用插件SDK,則代替var {utils:Cu, interfaces:Ci} = Components;你要做的var {Cu, Ci} = require('chrome');

+0

我正在使用來自瀏覽器的檢查元素的控制檯。但按Ctrl + Shift + j的工作。謝謝。 Web控制檯vs瀏覽器控制檯我猜。它是否登錄文件一側? – Naman

+0

它不會登錄到文件,因此您必須單獨實現該功能。如果您僅針對Firefox的最新版本,則可能對新的日誌記錄模塊感興趣:https://developer.mozilla.org/en-US/docs/Mozilla/JavaScript_code_modules/Log.jsm – Luckyrat

+0

@Luckyrat用於登錄文件不會[OSFile.jsm](https://developer.mozilla.org/en-US/docs/JavaScript_OS.File/OS.File_for_the_main_thread)更好? – Noitidart