您的位置:首页 > 移动开发

App.js添加浏览器返回键支持

2017-01-24 14:50 260 查看
app.js http://code.kik.com/app/2/index.html
(function(App,$){
var appLoad = App.load;
var appBack = App.back;

App.load = function(pageInfo, args, options, callback){
var pageName = null;
var url = null;
if(typeof pageInfo ==="string"){
pageName = pageInfo;
}else if(typeof pageInfo === "object"){
pageName = pageInfo.name;
url = pageInfo.url;
}

pushState(pageName); //

// 是否有同名的页面已经加载
if (App._Pages.has(pageName)) {
appLoad(pageName, args, options, callback);
return;
}

// 解析传入的html
function parsePage(html){
return html; // TODO we can enhance this
}

$.get(url,function(res){
var pageHtml = parsePage(res);
var page = $(pageHtml).appendTo("body");
App.add(pageName,page[0]);
appLoad(pageName, args, options, callback);

});

};

var internalBack = false;

App.back = function(pageName, callback){
internalBack = true;

appBack(pageName, callback);

history.back();
};

function pushState(pageName){
window.history.pushState({name:pageName},"","#/"+pageName);
}

window.onpopstate = function(event){
var state = event.state;
if(!internalBack){
appBack();
}
internalBack = false;
}
})(window.App,$);
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  web js back