pagebeforeloadイベント

ページの読み込みが行われる前に発火します。このイベント内で preventDefault() を呼ぶと、これに続く読み込みのリクエストを中断できます。この際コールバック関数は 必ず 引数に渡された data オブジェクトに含まれる deferred オブジェクトにある resolve() もしくは reject() を呼ばなければなりません。

コールバックの第二引数に渡される data オブジェクトは、次のようなプロパティを持っています。

url string
$.mobile.loadPage()が呼ばれた際に渡された、絶対もしくは相対URLです。
absUrl string
絶対パスに指定のURL。もし最初のリクエストが相対パスだった場合、アクティブページのURLを基に絶対パス化したものです。
dataUrl string
absUrlをフィルタリングしたもの。ページがアクティブになった際、ブラウザのロケーションを更新するために使われます。
deferred object

イベントで preventDefault() を呼んだ場合 必ず changePage() リクエストのプロセスを続行させるため、このオブジェクトの resolve() もしくは reject() を呼ばなければなりません。deferredオブジェクトは、次のように resolve するか

$( document ).bind( "pagebeforeload", function( event, data ){
        // フレームワークに、読み込み処理を自前で処理することを通知する
        event.preventDefault();
        // ... ドキュメントを読み込み、DOMに挿入する ...
        // 同時に、このコールバック内もしくは他の同期処理を通じて
        // resolveを呼び、そこに次のように引数を渡す
        // 加えて、ページ用の要素を含むjQueryコレクションオブジェクトを
        // 渡す
        data.deferred.resolve( data.absUrl, data.options, page );
});

もしくは、次のように reject することが期待されます。

$( document ).bind( "pagebeforeload", function( event, data ){
        // フレームワークに、読み込み処理を自前で処理することを通知する
        event.preventDefault();
        // ... ドキュメントを読み込み、DOMに挿入する ...
        // 同時に、読み込みに失敗した場合は、このコールバックあるいは
        // 他の同期処理を通じて、次のようにrejectを呼ぶ
        data.deferred.reject( data.absUrl, data.options );
})
options object
$.mobile.loadPage()が呼ばれた際のオプションがそのまま渡されます。