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,$);
相关文章推荐
- java-WEB中的监听器Lisener
- GUI - Web前端开发框架
- Extjs4.0 最新最全视频教程
- Javascript中toFixed方法的改进
- 5个常见可用性错误和解决方案
- 用户自定义多选框checkbox
- MyEclipse Web Project转Eclipse Dynamic Web Project
- axis备忘
- js数组实现图片轮播
- Apache select和Nginx epoll模型区别
- Webassembly
- 创业如何选择WEB开发语言
- Erlang实现的一个Web服务器代码实例
- 防止网页脚本病毒执行的方法-from web
- js可突破windows弹退效果代码
- 自学成才的秘密:115个 web Develop 资源
- webBrowser执行js的方法,并返回值,c#后台取值的实现
- JSP脚本漏洞面面观
- 使用批处理修改web打印设置笔记 适用于IE