ブラウザ (browser)

ブラウザ要素とは、ドキュメントのビューが表示されるフレームのことです。メインウィンドウ上では、chrome://browser/content/browser.xulがそれに該当します。

概要 (browser要素)

browser要素を使用することで、Webページをフレーム内に表示できます。

<browser type="content" src="http://example.com/" flex="1" />

browser要素の取得

メインウィンドウのbrowser要素への参照は、

  • グローバルスコープの、gBrowser変数
  • グローバルスコープの、getBrowser()関数の戻り値
  • document.getElementById( 'content' )の戻り値

などで取得できます。そうすることで、この要素を通してブラウザのオブジェクトにアクセスできるようになります。

プロパティ (Properties)

  • accessibleType
  • canGoBack
  • canGoForward
  • contentDocument … ブラウザ内のドキュメント (HTMLDocument)
  • contentPrincipal
  • contentTitle
  • contentViewerEdit
  • contentViewerFile
  • contentWindow
  • currentURI
  • docShell
  • documentCharsetInfo
  • homePage
  • markupDocumentViewer
  • messageManager
  • preferences
  • securityUI
  • sessionHistory
  • webBrowserFind
  • webNavigation
  • webProgress

メソッド (Methods)

addProgressListener()

読み込まれたドキュメントを監視するプログレス リスナを、ブラウザに追加します。

addProgressListener( listener )
addProgressListener - XUL | MDN

引数のlistenerは、次項のnsIWebProgressListenerインターフェイスを実装したオブジェクトでなければなりません。このメソッドの用法は、ロケーションの変更検出で解説しています。

nsIWebProgressListener

nsIWebProgressListenerインターフェイスを実装するには、次の5つのメソッドが必要です。

  • onLocationChange() … ロケーションが変更されたときに呼ばれる。
  • onProgressChange() … リクエストが変更されたときに呼ばれる。
  • onSecurityChange() … HTTPからHTTPSへのように、セキュリティが遷移するときに呼ばれる。
  • onStateChange() … リクエストの状態が変更されたときに呼ばれる。
  • onStatusChange() … リクエストのステータスが変更されたときに呼ばれる。
onLocationChange()
void onLocationChange(
    in nsIWebProgress aWebProgress, // 通知を発生したnsIWebProgress
    in nsIRequest aRequest,         // 関連するnsIRequest
    in nsIURI aLocation,
    [optional] in unsigned long aFlags
    );
onLocationChange() - nsIWebProgressListener - XPCOM Interface Reference | MDN
onProgressChange()
void onProgressChange(
    in nsIWebProgress aWebProgress, // 通知を発生したnsIWebProgress
    in nsIRequest aRequest,         // 新しい進捗のnsIRequest
    in long aCurSelfProgress,
    in long aMaxSelfProgress,
    in long aCurTotalProgress,
    in long aMaxTotalProgress
    );
onProgressChange() - nsIWebProgressListener - Mozilla | MDN
onSecurityChange()
void onSecurityChange(
    in nsIWebProgress aWebProgress, // 通知を発生したnsIWebProgress
    in nsIRequest aRequest,         // 新しいセキュリティ状態のnsIRequest
    in unsigned long aState         // セキュリティ状態フラグとセキュリティ強度フラグの和
    );
onSecurityChange() - nsIWebProgressListener - Mozilla | MDN
onStateChange()
void onStateChange(
    in nsIWebProgress aWebProgress, // 通知を発生したnsIWebProgress
    in nsIRequest aRequest,         // 状態を変更したnsIRequest
    in unsigned long aStateFlags,   // 新しい状態を表す、状態遷移フラグと状態種類フラグの和
    in nsresult aStatus             // 状態変化に伴うエラーのステータスコード
    );
onStateChange() - nsIWebProgressListener - Mozilla | MDN
onStateChange: function( aWebProgress, aRequest, aStateFlags, aStatus )
{
    if( ( aStateFlags & Components.interfaces.nsIWebProgressListener.STATE_IS_WINDOW )
    && ( aStateFlags & Components.interfaces.nsIWebProgressListener.STATE_STOP ) )
    {
        // ドキュメントの読み込みが完了した
    }
}
onStatusChange()
void onStatusChange(
    in nsIWebProgress aWebProgress, // 通知を発生したnsIWebProgress
    in nsIRequest aRequest,         // 新しい状態のnsIRequest
    in nsresult aStatus,            // リクエストの現在の状態を表す値
    in wstring aMessage             // aStatusに相当する、ローカライズされたテキスト
    );
onStatusChange() - nsIWebProgressListener - Mozilla | MDN
定数
遷移状態フラグ (State transition flags)
定数 説明
STATE_START  
STATE_REDIRECTING  
STATE_TRANSFERRING  
STATE_NEGOTIATING  
STATE_STOP リクエストが完了したことを示す
State transition flags - nsIWebProgressListener - Mozilla | MDN
状態種類フラグ (State type flags)
定数 説明
STATE_IS_REQUEST  
STATE_IS_DOCUMENT  
STATE_IS_NETWORK  
STATE_IS_WINDOW  
状態変更フラグ (State modifier flags)
定数 説明
STATE_RESTORING  
セキュリティ状態フラグ (State security flags)
定数 説明
STATE_IS_INSECURE  
STATE_IS_BROKEN  
STATE_IS_SECURE  
セキュリティ強度フラグ (Security strength flags)
定数 説明
STATE_SECURE_HIGH  
STATE_SECURE_MED  
STATE_SECURE_LOW  
同一状態フラグ (State identity flags)
定数 説明
STATE_IDENTITY_EV_TOPLEVEL  
ロケーション変更フラグ (Location Change flags)
定数 説明
LOCATION_CHANGE_SAME_DOCUMENT  
LOCATION_CHANGE_ERROR_PAGE  

removeProgressListener()

ブラウザからnsIWebProgressListenerを取り除きます。

removeProgressListener( listener )
removeProgressListener - Mozilla | MDN

loadURI()

ドキュメントにURLの内容を読み込みます。

loadURI(
    aURI,
    aReferrerURI,
    aCharset
    )
loadURI - XUL | MDN
gBrowser.loadURI( 'http://example.com', null, 'UTF-8' )

ちなみにChrome以外では、Windows.locationを書き換えることで新しいURLを読み込みます。

ドキュメントの読み込み完了の検出

ページの読み込みを検出するには、

などの方法があります。このうちプログレス リスナとDOMContentLoadedを利用する方法については、ロケーションの変更検出で解説しています。

参考

Firefoxアドオンの情報サイトから、まとめて検索