「コンソールに出力」の編集履歴(バックアップ)一覧はこちら
コンソールに出力 - (2014/10/17 (金) 12:19:14) の1つ前との変更点
追加された行は緑色になります。
削除された行は赤色になります。
エラーコンソールやブラウザコンソールに出力する。
出力するURLにリンクを張りたいんだけど、無理なのかな…
#contents()
*Console.jsmなどを使ってブラウザコンソールに出力
-[[Browser Console - Firefox Developer Tools | MDN>https://developer.mozilla.org/en-US/docs/Tools/Browser_Console#Messages_from_add-ons]]
とりあえずメモ
*従来のコンソールサービスを使って出力
**メッセージを出力
#highlight(javascript){
Components.utils.import("resource://gre/modules/Services.jsm");
Services.console.logStringMessage("sample message");}
Services.consoleは[[nsIConsoleService>https://developer.mozilla.org/en-US/docs/XPCOM_Interface_Reference/nsIConsoleService]]。
**エラー、警告、メッセージをより詳細に出力
#highlight(javascript){
Components.utils.import("resource://gre/modules/Services.jsm");
var scriptError = Components.classes["@mozilla.org/scripterror;1"]
.createInstance(Components.interfaces.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オブジェクトを作らないといけないのが激しく面倒。
ただ、「警告」が出せるのはこれだけっぽい。
-[[nsIConsoleService - MDC Doc Center>https://developer.mozilla.org/ja/NsIConsoleService]]
-[[nsIScriptError - MDC Doc Center>https://developer.mozilla.org/en/XPCOM_Interface_Reference/nsIScriptError]]
*reportErrorでエラーを出力
#highlight(javascript){
Components.utils.reportError("reportError message");}
-[[Components.utils.reportError - MDC Doc Center>https://developer.mozilla.org/ja/Components.utils.reportError]]
*FUELを使用してメッセージを出力
#highlight(javascript){
Application.console.log("sample message");}
FUELは簡単だが、jetpackとの競合により先行きが暗いのが難点。
あと、JSM内では
#highlight(javascript){
const Cc = Components.classes;
const Ci = Components.interfaces;
var Application = Cc["@mozilla.org/fuel/application;1"].getService(Ci.fuelIApplication);}
と書いておかないと使えない。
エラーコンソールやブラウザコンソールに出力する。
出力するURLにリンクを張りたいんだけど、無理なのかな…
#contents()
*Console.jsmを使ってブラウザコンソールに出力
-[[Browser Console - Firefox Developer Tools | MDN>https://developer.mozilla.org/en-US/docs/Tools/Browser_Console#Messages_from_add-ons]]
#highlight(javascript){
Components.utils.import("resource://gre/modules/devtools/Console.jsm");
console.log("sample message");}}
エラーコンソールには出力されないのに注意
*従来のコンソールサービスを使って出力
**メッセージを出力
#highlight(javascript){
Components.utils.import("resource://gre/modules/Services.jsm");
Services.console.logStringMessage("sample message");}
Services.consoleは[[nsIConsoleService>https://developer.mozilla.org/en-US/docs/XPCOM_Interface_Reference/nsIConsoleService]]。
**エラー、警告、メッセージをより詳細に出力
#highlight(javascript){
Components.utils.import("resource://gre/modules/Services.jsm");
var scriptError = Components.classes["@mozilla.org/scripterror;1"]
.createInstance(Components.interfaces.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オブジェクトを作らないといけないのが激しく面倒。
ただ、「警告」が出せるのはこれだけっぽい。
-[[nsIConsoleService - MDC Doc Center>https://developer.mozilla.org/ja/NsIConsoleService]]
-[[nsIScriptError - MDC Doc Center>https://developer.mozilla.org/en/XPCOM_Interface_Reference/nsIScriptError]]
*reportErrorでエラーを出力
#highlight(javascript){
Components.utils.reportError("reportError message");}
-[[Components.utils.reportError - MDC Doc Center>https://developer.mozilla.org/ja/Components.utils.reportError]]
*FUELを使用してメッセージを出力
#highlight(javascript){
Application.console.log("sample message");}
FUELは簡単だが、jetpackとの競合により先行きが暗いのが難点。
あと、JSM内では
#highlight(javascript){
const Cc = Components.classes;
const Ci = Components.interfaces;
var Application = Cc["@mozilla.org/fuel/application;1"].getService(Ci.fuelIApplication);}
と書いておかないと使えない。