在jquery mobile中页面跳转的时候,实现登录检查

原因:实现功能的时候,存在有的页面需要登录,有的不需要登录。

实现的时候,就是期望在加载页面前,检查一下登录情况,这里有两个事件

 pagebeforechange 和 pagebeforeshow

 用pagebeforeshow的话,如果需要登录,会先到目标页,然后再跳转到登录页。

这里用pagebeforechange来实现需求。

 

下面是相关代码。

 

(function( $, window, undefined ) {

function queryStringToObject( qstr )

{

var result = {},

nvPairs = ( ( qstr || "" ).replace( /[^\?]*\?/, "" ).split( /&/ ) ),

i, pair, n, v;


for ( i = 0; i < nvPairs.length; i++ ) {

var pstr = nvPairs[ i ];

if ( pstr ) {

pair = pstr.split( /=/ );

n = pair[ 0 ];

v = pair[ 1 ];

if ( result[ n ] === undefined ) {

result[ n ] = v;

} else {

if ( typeof result[ n ] !== "object" ) {

result[ n ] = [ result[ n ] ];

}

result[ n ].push( v );

}

}

}


return result;

$( document ).bind( "pagebeforechange", function( e, data ) {

if ( typeof data.toPage === "string" ) {


var u = $.mobile.path.parseUrl( data.toPage );

params = queryStringToObject(u.hash);

if(params["nl"] != undefined) //在这里,我用nl参数表示需要登录如:#home?nl

{

if(在这里判断如果未登录)

{

data.toPage = u.hrefNoHash+"#login"; //跳到登录页

}

}

}

});


})( jQuery, window );

posted @ 2012-02-07 03:13  文刀无尽  阅读(3734)  评论(0编辑  收藏  举报