ユーザー設定にアクセスするための、nsIPrefBranchを取得できます。
var prefs = Components.classes[ '@mozilla.org/preferences-service;1' ] .getService( Components.interfaces.nsIPrefBranch );
セッションの保存や復元ができます。
getBrowserState()
setWindowState( aWindow, aState, aOverwrite )
var localFile = Components.classes[ '@mozilla.org/file/local;1' ] .createInstance( Components.interfaces.nsILocalFile );
Browser.loadURIWithFlags()メソッド
loadURIWithFlags( aURI, aFlags, aReferrerURI, aCharset, aPostData )loadURIWithFlags - Mozilla | MDN
指定URLへPOSTでリクエストし、そのレスポンスをブラウザに読み込みます。
var Cc = Components.classes; var Ci = Components.interfaces; var dataString = 'name1=data1&name2=data2'; var stringStream = Cc[ '@mozilla.org/io/string-input-stream;1' ] .createInstance( Ci.nsIStringInputStream ); stringStream.data = dataString; var aPostData = Cc[ '@mozilla.org/network/mime-input-stream;1' ] .createInstance( Ci.nsIMIMEInputStream ); aPostData.addHeader( 'Content-Type', 'application/x-www-form-urlencoded' ); aPostData.addContentLength = true; aPostData.setData( stringStream ); var aURI = 'http://example.com/'; var aFlags = 0; var aReferrer = null; var aCharset = 'UTF-8'; gBrowser.loadURIWithFlags( aURI, aFlags, aReferrer, aCharset, aPostData );
ブラウザに表示するのではなくレスポンスを直接受け取りたいならば、XMLHttpRequestを用います。
音を鳴らせます。
var sound = Components.classes[ '@mozilla.org/sound;1' ]
.createInstance( Components.interfaces.nsISound );
// Beep音を鳴らす
sound.beep();
ウィンドウを取得できます。
var wm = Components.classes[ '@mozilla.org/appshell/window-mediator;1' ] .getService( Components.interfaces.nsIWindowMediator );
nsIPromptServiceでは、window.alert()やwindow.confirm()のようなダイアログを表示できます。Example code - nsIPromptService - Mozilla | MDN
下表に示すような、表示形式の異なるメソッドがあります。
メソッド | 追加要素 | ||||||
---|---|---|---|---|---|---|---|
OK | キャンセル | 任意のボタン | チェックボックス | 入力欄 | パスワードの入力欄 | リストボックス | |
alert() | ○ | ||||||
alertCheck() | ○ | ○ | |||||
confirm() | ○ | ○ | |||||
confirmCheck() | ○ | ○ | ○ | ||||
confirmEx() | ○ | ○ | ○ | △ (オプション) | |||
prompt() | △ (オプション) | ○ | |||||
promptUsernameAndPassword() | △ (オプション) | ○ | ○ | ||||
promptPassword() | △ (オプション) | ○ | |||||
select() | ○ |
void alert( in nsIDOMWindow aParent, // ダイアログの親ウィンドウ。アクティブなウィンドウをそれとするならば、nullを指定する。 in wstring aDialogTitle, // ダイアログのタイトル in wstring aText // ダイアログの本文 );alert() - nsIPromptService - Mozilla | MDN
これはwindow.alert()に相当するメソッドですが、タイトルを指定できる点が異なります。アドオンではwindow.alert()よりも、こちらを使用することが推奨されています。
nsIPromptService.alert() | Window.alert() |
---|---|
var prompt = Components.classes[ '@mozilla.org/embedcomp/prompt-service;1' ] .getService(Components.interfaces.nsIPromptService); prompt.alert( null, 'Title', 'SAMPLE' );
void alertCheck( in nsIDOMWindow aParent, // in wstring aDialogTitle, // in wstring aText, // in wstring aCheckMsg, // inout boolean aCheckState // );alertCheck() - nsIPromptService - Mozilla | MDN
boolean confirm( in nsIDOMWindow aParent, // in wstring aDialogTitle, // in wstring aText // );confirm() - nsIPromptService - Mozilla | MDN
nsIAlertsServiceでは、ウィンドウ下部に次のような通知ウィンドウを表示できます。
try { var alertsService = Components.classes[ '@mozilla.org/alerts-service;' ] .getService( Components.interfaces.nsIAlertsService ); alertsService.showAlertNotification( null, 'Title', 'text' ); } catch( e ) {}
このshowAlertNotification()は、Mac OS XのFirefox 22より前では例外を発生するため、tryで囲みます。
void showAlertNotification( in AString imageUrl, in AString title, in AString text, in boolean textClickable, in AString cookie, in nsIObserver alertListener, in AString name, in AString dir, in AString lang );showAlertNotification() - nsIAlertsService - Mozilla | MDN
クリップボードを使用した、切り取り、コピー、貼り付けができます。
@mozilla.org/widget/clipboard;1
@mozilla.org/widget/clipboardhelper;1
Windowsのレジストリへアクセスできます。
@mozilla.org/embedcomp/rangefind;1
これの利用例が、Firefoxのソースの\toolkit\modules\Finder.jsmのFinder._highlight()にあります。