エラーコンソールやブラウザコンソールに出力する。
出力するURLにリンクを張りたいんだけど、無理なのかな…


ブラウザコンソールを開く

window.HUDService.openBrowserConsoleOrFocus();
windowは"navigator:browser"ウィンドウ。
windowがない場合は、
var {devtools} = Cu.import("resource://devtools/shared/Loader.jsm", {});
var HUDService = devtools.require("devtools/client/webconsole/hudservice");
HUDService.openBrowserConsoleOrFocus();


Console.jsmを使ってブラウザコンソールに出力

Cu.import("resource://gre/modules/devtools/Console.jsm");
console.log("sample message");
エラーコンソールには出力されないのに注意。
警告とかエラーとか、タイマーやスタックトレースもある。

従来のコンソールサービスを使って出力

メッセージを出力

Cu.import("resource://gre/modules/Services.jsm");
Services.console.logStringMessage("sample message");
Services.consoleはnsIConsoleService

エラー、警告、メッセージをより詳細に出力

Cu.import("resource://gre/modules/Services.jsm");
 
var scriptError = Cc["@mozilla.org/scripterror;1"].createInstance(Ci.nsIScriptError);
var aMessage = "sample message"; // 出力する文字列
var aSourceName = null;   // ソースファイルのURL。nullなら表示しない
var aSourceLine = null;   // 行番号。nullなら表示しない
var aLineNumber = null;   // エラー位置特定のための行番号
var aColumnNumber = null; // エラー位置特定のための桁番号
var aFlags = scriptError.warningFlag; // エラー、警告、例外、メッセージのどれなのか指定
var aCategory = "chrome javascript";  // コードの種類を指定
scriptError.init(aMessage, aSourceName, aSourceLine, aLineNumber, aColumnNumber, aFlags, aCategory);
 
Services.console.logMessage(scriptError);
わざわざnsIScriptErrorオブジェクトを作らないといけないのが激しく面倒。
ただ、「警告」が出せるのはこれだけっぽい。


reportErrorでエラーを出力

Cu.reportError("reportError message");


タグ:

+ タグ編集
  • タグ:
最終更新:2016年09月06日 08:04