页面跳转,返回

(function(win){
	var TabBarPlug=function(options){
		this.barTitle='DEMOBAR';
	}
	TabBarPlug.prototype={
		//获取浏览过的地址
		getSessionUrl: function(){
			return JSON.parse(sessionStorage.getItem('historyUrl') || '[]');
		},
		//存储浏览历史地址
		setSessionUrl: function (source) {
			sessionStorage.setItem('historyUrl', JSON.stringify(source || []));
			return true;
		},
		//测试
		setBarTitle: function(pageUrl){
			pageUrl=pageUrl.toLowerCase();
			if(pageUrl.indexOf('a.html')>-1){
				this.barTitle='DEMOA';
			}
			if(pageUrl.indexOf('b.html')>-1){
				this.barTitle='DEMOB';
			}
		},
		//当前页面和浏览历史最后一条匹配
		isCurPage: function (urls) {
			var curUrl = location.href;
			if (!urls) {
				urls = [];
			}
			var lastUrl = urls[urls.length - 1];
			if (lastUrl == curUrl) {
				return true;
			} else {
				return false;
			}
		},
		init: function(){
			var historyUrl = this.getSessionUrl();
			var curUrl = location.href;
			this.setBarTitle(curUrl);
			//因为当执行history.back后,当前页面会在刷新一次,这时候是不需要加入浏览记录的
			if (!this.isCurPage(historyUrl)) {
				historyUrl.push(curUrl);
				this.setSessionUrl(historyUrl);//存储浏览记录
			}
		},
		go: function (e) {
			e ? e : window.event;
			e.preventDefault();
			e.stopPropagation();
			var historyUrl = this.getSessionUrl();
			var that = this;
			var backApp = function () {
				sessionStorage.removeItem('historyUrl');//移除session
				win.close();
			};
			var back = function () {
				//IE history.length=0 其他:fixfox、gg history.length=1
				if (that.isCurPage(historyUrl)) {//防止用户多次点击
				  historyUrl.pop();//删除浏览地址
				  that.setSessionUrl(historyUrl);//存储浏览记录
				  //发现在app内嵌的页面需要延迟执行,否则会出现连续关闭两个页面的情况
				  setTimeout(function () {
				    history.back();//回退
				  }, 500);
				  //回退app
				  if (historyUrl.length <= 0) {
				    backApp();
				  }
				} 
			};
			console.log(historyUrl);
			back();
		}
	}
	win.TabBarPlug=new TabBarPlug();
})(window);	


	
		
		
		a
		
	
	
		
		
lldsjfls
lsdjfls
跳转b页面 lsdjfls
lsdjfls
click me to back


你可能感兴趣的:(xhtml/div/css,javascript)