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()が呼ばれた際のオプションがそのまま渡されます。